[
  {
    "type": "add_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "aggregate_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "decl_defs",
          "named": true
        }
      ]
    }
  },
  {
    "type": "aggregate_foreach",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "foreach",
          "named": true
        },
        {
          "type": "foreach_aggregate",
          "named": true
        },
        {
          "type": "foreach_type_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alias_assign",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alias_assignment",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "function_literal",
          "named": true
        },
        {
          "type": "function_literal_body",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "parameters",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "storage_classes",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alias_assignments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alias_assignment",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alias_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alias_assignments",
          "named": true
        },
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "declarators",
          "named": true
        },
        {
          "type": "func_declarator",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "storage_classes",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alias_this",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "align_attribute",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "allocator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "parameters",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "allocator_arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "argument_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alt_declarator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator_inner",
          "named": true
        },
        {
          "type": "alt_declarator_suffixes",
          "named": true
        },
        {
          "type": "alt_func_declarator_suffix",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "type_suffixes",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alt_declarator_identifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator_suffixes",
          "named": true
        },
        {
          "type": "array_initializer",
          "named": true
        },
        {
          "type": "exp_initializer",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "struct_initializer",
          "named": true
        },
        {
          "type": "type_suffixes",
          "named": true
        },
        {
          "type": "void_initializer",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alt_declarator_inner",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator",
          "named": true
        },
        {
          "type": "alt_func_declarator_suffix",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "type_suffixes",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alt_declarator_suffix",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alt_declarator_suffixes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator_suffix",
          "named": true
        }
      ]
    }
  },
  {
    "type": "alt_func_declarator_suffix",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "and_and_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "and_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anon_struct_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anon_union_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anonymous_enum_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "anonymous_enum_members",
          "named": true
        },
        {
          "type": "enum_base_type",
          "named": true
        },
        {
          "type": "enum_members",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anonymous_enum_member",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anonymous_enum_members",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "anonymous_enum_member",
          "named": true
        },
        {
          "type": "enum_member",
          "named": true
        }
      ]
    }
  },
  {
    "type": "argument_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_initializer",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "array_member_initializations",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "argument_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_member_initialization",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "array_initializer",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "exp_initializer",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "struct_initializer",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_member_initializations",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_member_initialization",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_add_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_and_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_and_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_br_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_and_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_exp",
          "named": true
        },
        {
          "type": "asm_log_and_exp",
          "named": true
        },
        {
          "type": "asm_log_or_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_or_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        },
        {
          "type": "asm_xor_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_equal_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_and_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_exp",
          "named": true
        },
        {
          "type": "asm_log_and_exp",
          "named": true
        },
        {
          "type": "asm_log_or_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_or_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        },
        {
          "type": "asm_xor_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_instruction",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "alternate_wysiwyg_string",
          "named": true
        },
        {
          "type": "delimited_string",
          "named": true
        },
        {
          "type": "double_quoted_string",
          "named": true
        },
        {
          "type": "hex_string",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "opcode",
          "named": true
        },
        {
          "type": "operands",
          "named": true
        },
        {
          "type": "token_string",
          "named": true
        },
        {
          "type": "wysiwyg_string",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_instruction_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "asm_instruction",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_log_and_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_and_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_log_and_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_or_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        },
        {
          "type": "asm_xor_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_log_or_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_and_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_log_and_exp",
          "named": true
        },
        {
          "type": "asm_log_or_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_or_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        },
        {
          "type": "asm_xor_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_mul_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_or_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_and_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_or_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        },
        {
          "type": "asm_xor_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_primary_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_and_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_exp",
          "named": true
        },
        {
          "type": "asm_log_and_exp",
          "named": true
        },
        {
          "type": "asm_log_or_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_or_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        },
        {
          "type": "asm_xor_exp",
          "named": true
        },
        {
          "type": "dot_identifier",
          "named": true
        },
        {
          "type": "float_literal",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "register",
          "named": true
        },
        {
          "type": "register64",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_rel_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_shift_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "asm_instruction_list",
          "named": true
        },
        {
          "type": "function_attributes",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_type_prefix",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "fundamental_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_una_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_and_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_exp",
          "named": true
        },
        {
          "type": "asm_log_and_exp",
          "named": true
        },
        {
          "type": "asm_log_or_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_or_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_type_prefix",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        },
        {
          "type": "asm_xor_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "asm_xor_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_and_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        },
        {
          "type": "asm_xor_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assert_arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assert_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "assert_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assign_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assoc_array_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "key_value_pairs",
          "named": true
        }
      ]
    }
  },
  {
    "type": "at_attribute",
    "named": true,
    "fields": {}
  },
  {
    "type": "attribute",
    "named": true,
    "fields": {}
  },
  {
    "type": "attribute_specifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alias_assign",
          "named": true
        },
        {
          "type": "alias_declaration",
          "named": true
        },
        {
          "type": "alias_this",
          "named": true
        },
        {
          "type": "align_attribute",
          "named": true
        },
        {
          "type": "allocator",
          "named": true
        },
        {
          "type": "anon_struct_declaration",
          "named": true
        },
        {
          "type": "anon_union_declaration",
          "named": true
        },
        {
          "type": "anonymous_enum_declaration",
          "named": true
        },
        {
          "type": "at_attribute",
          "named": true
        },
        {
          "type": "attribute",
          "named": true
        },
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "auto_declaration",
          "named": true
        },
        {
          "type": "auto_func_declaration",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "class_template_declaration",
          "named": true
        },
        {
          "type": "conditional_declaration",
          "named": true
        },
        {
          "type": "constructor",
          "named": true
        },
        {
          "type": "constructor_template",
          "named": true
        },
        {
          "type": "deallocator",
          "named": true
        },
        {
          "type": "debug_specification",
          "named": true
        },
        {
          "type": "declaration_block",
          "named": true
        },
        {
          "type": "deprecated_attribute",
          "named": true
        },
        {
          "type": "destructor",
          "named": true
        },
        {
          "type": "empty_declaration",
          "named": true
        },
        {
          "type": "enum_declaration",
          "named": true
        },
        {
          "type": "func_declaration",
          "named": true
        },
        {
          "type": "function_attribute_kwd",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "interface_declaration",
          "named": true
        },
        {
          "type": "interface_template_declaration",
          "named": true
        },
        {
          "type": "invariant",
          "named": true
        },
        {
          "type": "linkage_attribute",
          "named": true
        },
        {
          "type": "mixin_declaration",
          "named": true
        },
        {
          "type": "postblit",
          "named": true
        },
        {
          "type": "pragma",
          "named": true
        },
        {
          "type": "property",
          "named": true
        },
        {
          "type": "shared_static_constructor",
          "named": true
        },
        {
          "type": "shared_static_destructor",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_constructor",
          "named": true
        },
        {
          "type": "static_destructor",
          "named": true
        },
        {
          "type": "static_foreach_declaration",
          "named": true
        },
        {
          "type": "struct_declaration",
          "named": true
        },
        {
          "type": "struct_template_declaration",
          "named": true
        },
        {
          "type": "template_declaration",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "template_mixin_declaration",
          "named": true
        },
        {
          "type": "union_declaration",
          "named": true
        },
        {
          "type": "union_template_declaration",
          "named": true
        },
        {
          "type": "unit_test",
          "named": true
        },
        {
          "type": "user_defined_attribute",
          "named": true
        },
        {
          "type": "var_declarations",
          "named": true
        },
        {
          "type": "version_specification",
          "named": true
        },
        {
          "type": "visibility_attribute",
          "named": true
        }
      ]
    }
  },
  {
    "type": "auto_assignment",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_initializer",
          "named": true
        },
        {
          "type": "exp_initializer",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "struct_initializer",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        },
        {
          "type": "void_initializer",
          "named": true
        }
      ]
    }
  },
  {
    "type": "auto_assignments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "auto_assignment",
          "named": true
        }
      ]
    }
  },
  {
    "type": "auto_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "auto_assignments",
          "named": true
        },
        {
          "type": "storage_classes",
          "named": true
        }
      ]
    }
  },
  {
    "type": "auto_func_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "func_declarator_suffix",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        },
        {
          "type": "storage_classes",
          "named": true
        }
      ]
    }
  },
  {
    "type": "base_class_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "interfaces",
          "named": true
        },
        {
          "type": "super_class_or_interface",
          "named": true
        }
      ]
    }
  },
  {
    "type": "base_interface_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "interfaces",
          "named": true
        }
      ]
    }
  },
  {
    "type": "basic_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "type_ctor",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        }
      ]
    }
  },
  {
    "type": "block_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "statement_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "break_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "case_range_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "first_exp",
          "named": true
        },
        {
          "type": "last_exp",
          "named": true
        },
        {
          "type": "scope_statement_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "case_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        },
        {
          "type": "scope_statement_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "cast_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "type_ctors",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "cat_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "catch",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "catch_parameter",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "catch_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "catches",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "catch",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        },
        {
          "type": "base_class_list",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_template_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        },
        {
          "type": "base_class_list",
          "named": true
        },
        {
          "type": "constraint",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "comma_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "comma_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "complement_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "conditional_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alias_assign",
          "named": true
        },
        {
          "type": "alias_declaration",
          "named": true
        },
        {
          "type": "alias_this",
          "named": true
        },
        {
          "type": "allocator",
          "named": true
        },
        {
          "type": "anon_struct_declaration",
          "named": true
        },
        {
          "type": "anon_union_declaration",
          "named": true
        },
        {
          "type": "anonymous_enum_declaration",
          "named": true
        },
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "auto_declaration",
          "named": true
        },
        {
          "type": "auto_func_declaration",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "class_template_declaration",
          "named": true
        },
        {
          "type": "conditional_declaration",
          "named": true
        },
        {
          "type": "constructor",
          "named": true
        },
        {
          "type": "constructor_template",
          "named": true
        },
        {
          "type": "deallocator",
          "named": true
        },
        {
          "type": "debug_condition",
          "named": true
        },
        {
          "type": "debug_specification",
          "named": true
        },
        {
          "type": "decl_defs",
          "named": true
        },
        {
          "type": "declaration_block",
          "named": true
        },
        {
          "type": "destructor",
          "named": true
        },
        {
          "type": "empty_declaration",
          "named": true
        },
        {
          "type": "enum_declaration",
          "named": true
        },
        {
          "type": "func_declaration",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "interface_declaration",
          "named": true
        },
        {
          "type": "interface_template_declaration",
          "named": true
        },
        {
          "type": "invariant",
          "named": true
        },
        {
          "type": "mixin_declaration",
          "named": true
        },
        {
          "type": "postblit",
          "named": true
        },
        {
          "type": "shared_static_constructor",
          "named": true
        },
        {
          "type": "shared_static_destructor",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_constructor",
          "named": true
        },
        {
          "type": "static_destructor",
          "named": true
        },
        {
          "type": "static_foreach_declaration",
          "named": true
        },
        {
          "type": "static_if_condition",
          "named": true
        },
        {
          "type": "struct_declaration",
          "named": true
        },
        {
          "type": "struct_template_declaration",
          "named": true
        },
        {
          "type": "template_declaration",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "template_mixin_declaration",
          "named": true
        },
        {
          "type": "union_declaration",
          "named": true
        },
        {
          "type": "union_template_declaration",
          "named": true
        },
        {
          "type": "unit_test",
          "named": true
        },
        {
          "type": "var_declarations",
          "named": true
        },
        {
          "type": "version_condition",
          "named": true
        },
        {
          "type": "version_specification",
          "named": true
        }
      ]
    }
  },
  {
    "type": "conditional_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "conditional_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "debug_condition",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "static_if_condition",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "version_condition",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constraint",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "parameters",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor_args",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "argument_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor_template",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "constraint",
          "named": true
        },
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "parameters",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "continue_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "deallocator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "parameters",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "debug_condition",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "debug_specification",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "decl_defs",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "alias_assign",
          "named": true
        },
        {
          "type": "alias_declaration",
          "named": true
        },
        {
          "type": "alias_this",
          "named": true
        },
        {
          "type": "allocator",
          "named": true
        },
        {
          "type": "anon_struct_declaration",
          "named": true
        },
        {
          "type": "anon_union_declaration",
          "named": true
        },
        {
          "type": "anonymous_enum_declaration",
          "named": true
        },
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "auto_declaration",
          "named": true
        },
        {
          "type": "auto_func_declaration",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "class_template_declaration",
          "named": true
        },
        {
          "type": "conditional_declaration",
          "named": true
        },
        {
          "type": "constructor",
          "named": true
        },
        {
          "type": "constructor_template",
          "named": true
        },
        {
          "type": "deallocator",
          "named": true
        },
        {
          "type": "debug_specification",
          "named": true
        },
        {
          "type": "destructor",
          "named": true
        },
        {
          "type": "empty_declaration",
          "named": true
        },
        {
          "type": "enum_declaration",
          "named": true
        },
        {
          "type": "func_declaration",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "interface_declaration",
          "named": true
        },
        {
          "type": "interface_template_declaration",
          "named": true
        },
        {
          "type": "invariant",
          "named": true
        },
        {
          "type": "mixin_declaration",
          "named": true
        },
        {
          "type": "postblit",
          "named": true
        },
        {
          "type": "shared_static_constructor",
          "named": true
        },
        {
          "type": "shared_static_destructor",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_constructor",
          "named": true
        },
        {
          "type": "static_destructor",
          "named": true
        },
        {
          "type": "static_foreach_declaration",
          "named": true
        },
        {
          "type": "struct_declaration",
          "named": true
        },
        {
          "type": "struct_template_declaration",
          "named": true
        },
        {
          "type": "template_declaration",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "template_mixin_declaration",
          "named": true
        },
        {
          "type": "union_declaration",
          "named": true
        },
        {
          "type": "union_template_declaration",
          "named": true
        },
        {
          "type": "unit_test",
          "named": true
        },
        {
          "type": "var_declarations",
          "named": true
        },
        {
          "type": "version_specification",
          "named": true
        }
      ]
    }
  },
  {
    "type": "declaration_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "decl_defs",
          "named": true
        }
      ]
    }
  },
  {
    "type": "declaration_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "alias_assign",
          "named": true
        },
        {
          "type": "alias_declaration",
          "named": true
        },
        {
          "type": "anon_struct_declaration",
          "named": true
        },
        {
          "type": "anon_union_declaration",
          "named": true
        },
        {
          "type": "anonymous_enum_declaration",
          "named": true
        },
        {
          "type": "auto_declaration",
          "named": true
        },
        {
          "type": "auto_func_declaration",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "class_template_declaration",
          "named": true
        },
        {
          "type": "conditional_declaration",
          "named": true
        },
        {
          "type": "enum_declaration",
          "named": true
        },
        {
          "type": "func_declaration",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "interface_declaration",
          "named": true
        },
        {
          "type": "interface_template_declaration",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_declaration",
          "named": true
        },
        {
          "type": "storage_classes",
          "named": true
        },
        {
          "type": "struct_declaration",
          "named": true
        },
        {
          "type": "struct_template_declaration",
          "named": true
        },
        {
          "type": "template_declaration",
          "named": true
        },
        {
          "type": "union_declaration",
          "named": true
        },
        {
          "type": "union_template_declaration",
          "named": true
        },
        {
          "type": "var_declarations",
          "named": true
        }
      ]
    }
  },
  {
    "type": "declarator_identifier_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator_identifier",
          "named": true
        },
        {
          "type": "var_declarator_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "declarator_initializer",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator",
          "named": true
        },
        {
          "type": "array_initializer",
          "named": true
        },
        {
          "type": "exp_initializer",
          "named": true
        },
        {
          "type": "struct_initializer",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        },
        {
          "type": "var_declarator",
          "named": true
        },
        {
          "type": "void_initializer",
          "named": true
        }
      ]
    }
  },
  {
    "type": "declarators",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator",
          "named": true
        },
        {
          "type": "declarator_identifier_list",
          "named": true
        },
        {
          "type": "declarator_initializer",
          "named": true
        },
        {
          "type": "var_declarator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "default_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "scope_statement_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "delete_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "deprecated_attribute",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "destructor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "do_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "dot_identifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "dot_identifier",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "else_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "empty_declaration",
    "named": true,
    "fields": {}
  },
  {
    "type": "empty_statement",
    "named": true,
    "fields": {}
  },
  {
    "type": "enum_base_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "enum_members",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "enum_base_type",
          "named": true
        },
        {
          "type": "enum_body",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_member",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "enum_member_attributes",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_member_attribute",
    "named": true,
    "fields": {}
  },
  {
    "type": "enum_member_attributes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "deprecated_attribute",
          "named": true
        },
        {
          "type": "enum_member_attribute",
          "named": true
        },
        {
          "type": "user_defined_attribute",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_members",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "enum_member",
          "named": true
        }
      ]
    }
  },
  {
    "type": "equal_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "exp_initializer",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "comma_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "expression_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "final_switch_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "finally_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "first_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "float_literal",
    "named": true,
    "fields": {}
  },
  {
    "type": "for_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "increment",
          "named": true
        },
        {
          "type": "initialize",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "test",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "foreach",
    "named": true,
    "fields": {}
  },
  {
    "type": "foreach_aggregate",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "foreach_range_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "range_foreach",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "foreach_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "aggregate_foreach",
          "named": true
        },
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "foreach_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator",
          "named": true
        },
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "foreach_type_attributes",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "var_declarator",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "foreach_type_attribute",
    "named": true,
    "fields": {}
  },
  {
    "type": "foreach_type_attributes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "foreach_type_attribute",
          "named": true
        },
        {
          "type": "type_ctor",
          "named": true
        }
      ]
    }
  },
  {
    "type": "foreach_type_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "foreach_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "func_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "func_declarator",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        },
        {
          "type": "storage_classes",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "func_declarator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "func_declarator_suffix",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "type_suffixes",
          "named": true
        }
      ]
    }
  },
  {
    "type": "func_declarator_suffix",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "constraint",
          "named": true
        },
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "parameters",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_attribute_kwd",
    "named": true,
    "fields": {}
  },
  {
    "type": "function_attributes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "at_attribute",
          "named": true
        },
        {
          "type": "function_attribute_kwd",
          "named": true
        },
        {
          "type": "property",
          "named": true
        },
        {
          "type": "user_defined_attribute",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_contracts",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "in_contract_expression",
          "named": true
        },
        {
          "type": "in_statement",
          "named": true
        },
        {
          "type": "out_contract_expression",
          "named": true
        },
        {
          "type": "out_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "function_literal_body",
          "named": true
        },
        {
          "type": "function_literal_body2",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "parameter_with_attributes",
          "named": true
        },
        {
          "type": "parameter_with_member_attributes",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_literal_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "specified_function_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_literal_body2",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "fundamental_type",
    "named": true,
    "fields": {}
  },
  {
    "type": "gcc_asm_clobbers",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alternate_wysiwyg_string",
          "named": true
        },
        {
          "type": "delimited_string",
          "named": true
        },
        {
          "type": "double_quoted_string",
          "named": true
        },
        {
          "type": "gcc_asm_clobbers",
          "named": true
        },
        {
          "type": "hex_string",
          "named": true
        },
        {
          "type": "token_string",
          "named": true
        },
        {
          "type": "wysiwyg_string",
          "named": true
        }
      ]
    }
  },
  {
    "type": "gcc_asm_goto_labels",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "gcc_asm_goto_labels",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "gcc_asm_instruction_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "gcc_basic_asm_instruction",
          "named": true
        },
        {
          "type": "gcc_ext_asm_instruction",
          "named": true
        },
        {
          "type": "gcc_goto_asm_instruction",
          "named": true
        }
      ]
    }
  },
  {
    "type": "gcc_asm_operands",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "alternate_wysiwyg_string",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "delimited_string",
          "named": true
        },
        {
          "type": "double_quoted_string",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "gcc_asm_operands",
          "named": true
        },
        {
          "type": "gcc_symbolic_name",
          "named": true
        },
        {
          "type": "hex_string",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "token_string",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "wysiwyg_string",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "gcc_asm_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "function_attributes",
          "named": true
        },
        {
          "type": "gcc_asm_instruction_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "gcc_basic_asm_instruction",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "gcc_ext_asm_instruction",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "alternate_wysiwyg_string",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "delimited_string",
          "named": true
        },
        {
          "type": "double_quoted_string",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "gcc_asm_clobbers",
          "named": true
        },
        {
          "type": "gcc_asm_operands",
          "named": true
        },
        {
          "type": "hex_string",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "token_string",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "wysiwyg_string",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "gcc_goto_asm_instruction",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "alternate_wysiwyg_string",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "delimited_string",
          "named": true
        },
        {
          "type": "double_quoted_string",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "gcc_asm_clobbers",
          "named": true
        },
        {
          "type": "gcc_asm_goto_labels",
          "named": true
        },
        {
          "type": "gcc_asm_operands",
          "named": true
        },
        {
          "type": "hex_string",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "token_string",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "wysiwyg_string",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "gcc_symbolic_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "goto_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "identity_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "if_condition",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator",
          "named": true
        },
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "type_ctors",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "var_declarator",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "if_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "else_statement",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "if_condition",
          "named": true
        },
        {
          "type": "then_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "module_alias_identifier",
          "named": true
        },
        {
          "type": "module_fully_qualified_name",
          "named": true
        },
        {
          "type": "module_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_bind",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_bind_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "import_bind",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_bindings",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "import",
          "named": true
        },
        {
          "type": "import_bind_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "import_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "import",
          "named": true
        },
        {
          "type": "import_bindings",
          "named": true
        }
      ]
    }
  },
  {
    "type": "in_contract_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "assert_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "in_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "in_out",
    "named": true,
    "fields": {}
  },
  {
    "type": "in_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "block_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "increment",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "index_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "initialize",
    "named": true,
    "fields": {}
  },
  {
    "type": "interface",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "interface_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        },
        {
          "type": "base_interface_list",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "interface_template_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        },
        {
          "type": "base_interface_list",
          "named": true
        },
        {
          "type": "constraint",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "interfaces",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "interface",
          "named": true
        }
      ]
    }
  },
  {
    "type": "invariant",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "assert_arguments",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "is_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "template_parameter_list",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "type_specialization",
          "named": true
        }
      ]
    }
  },
  {
    "type": "key_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "key_value_pair",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "key_expression",
          "named": true
        },
        {
          "type": "value_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "key_value_pairs",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "key_value_pair",
          "named": true
        }
      ]
    }
  },
  {
    "type": "keyword",
    "named": true,
    "fields": {}
  },
  {
    "type": "labeled_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "empty_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_block_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "last_exp",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "linkage_attribute",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "linkage_type",
          "named": true
        },
        {
          "type": "namespace_list",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "linkage_type",
    "named": true,
    "fields": {}
  },
  {
    "type": "lwr_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "member_function_attribute",
    "named": true,
    "fields": {}
  },
  {
    "type": "member_function_attributes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "at_attribute",
          "named": true
        },
        {
          "type": "function_attribute_kwd",
          "named": true
        },
        {
          "type": "member_function_attribute",
          "named": true
        },
        {
          "type": "property",
          "named": true
        },
        {
          "type": "user_defined_attribute",
          "named": true
        }
      ]
    }
  },
  {
    "type": "missing_function_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_contracts",
          "named": true
        },
        {
          "type": "in_contract_expression",
          "named": true
        },
        {
          "type": "in_statement",
          "named": true
        },
        {
          "type": "out_contract_expression",
          "named": true
        },
        {
          "type": "out_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mixin_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mixin_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mixin_qualified_identifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "mixin_qualified_identifier",
          "named": true
        },
        {
          "type": "template_instance",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mixin_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mixin_template_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "mixin_qualified_identifier",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mixin_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "module",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "decl_defs",
          "named": true
        },
        {
          "type": "module_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "module_alias_identifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "module_attributes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "deprecated_attribute",
          "named": true
        },
        {
          "type": "user_defined_attribute",
          "named": true
        }
      ]
    }
  },
  {
    "type": "module_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "module_attributes",
          "named": true
        },
        {
          "type": "module_fully_qualified_name",
          "named": true
        },
        {
          "type": "module_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "module_fully_qualified_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "module_name",
          "named": true
        },
        {
          "type": "packages",
          "named": true
        }
      ]
    }
  },
  {
    "type": "module_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mul_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "namespace_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "new_anon_class_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        },
        {
          "type": "allocator_arguments",
          "named": true
        },
        {
          "type": "constructor_args",
          "named": true
        },
        {
          "type": "interfaces",
          "named": true
        },
        {
          "type": "super_class_or_interface",
          "named": true
        }
      ]
    }
  },
  {
    "type": "new_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "allocator_arguments",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "argument_list",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "opcode",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "operand",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "asm_add_exp",
          "named": true
        },
        {
          "type": "asm_and_exp",
          "named": true
        },
        {
          "type": "asm_br_exp",
          "named": true
        },
        {
          "type": "asm_equal_exp",
          "named": true
        },
        {
          "type": "asm_exp",
          "named": true
        },
        {
          "type": "asm_log_and_exp",
          "named": true
        },
        {
          "type": "asm_log_or_exp",
          "named": true
        },
        {
          "type": "asm_mul_exp",
          "named": true
        },
        {
          "type": "asm_or_exp",
          "named": true
        },
        {
          "type": "asm_primary_exp",
          "named": true
        },
        {
          "type": "asm_rel_exp",
          "named": true
        },
        {
          "type": "asm_shift_exp",
          "named": true
        },
        {
          "type": "asm_una_exp",
          "named": true
        },
        {
          "type": "asm_xor_exp",
          "named": true
        }
      ]
    }
  },
  {
    "type": "operands",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "operand",
          "named": true
        }
      ]
    }
  },
  {
    "type": "or_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "or_or_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "out_contract_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "assert_arguments",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "out_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "package_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "packages",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "package_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "alt_declarator",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "parameter_attributes",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "var_declarator",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameter_attributes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "in_out",
          "named": true
        },
        {
          "type": "type_ctor",
          "named": true
        },
        {
          "type": "user_defined_attribute",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameter_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "parameter",
          "named": true
        },
        {
          "type": "variadic_arguments_attributes",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameter_with_attributes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "function_attributes",
          "named": true
        },
        {
          "type": "parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameter_with_member_attributes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "parameter_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "postblit",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "postfix_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        },
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "new_anon_class_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "template_instance",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "type_ctors",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pow_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pragma",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pragma_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "empty_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "primary_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "argument_list",
          "named": true
        },
        {
          "type": "array_literal",
          "named": true
        },
        {
          "type": "assert_expression",
          "named": true
        },
        {
          "type": "assoc_array_literal",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "float_literal",
          "named": true
        },
        {
          "type": "function_literal",
          "named": true
        },
        {
          "type": "function_literal_body",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "import_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "is_expression",
          "named": true
        },
        {
          "type": "mixin_expression",
          "named": true
        },
        {
          "type": "new_anon_class_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "special_keyword",
          "named": true
        },
        {
          "type": "string_literals",
          "named": true
        },
        {
          "type": "template_instance",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "type_ctor",
          "named": true
        },
        {
          "type": "typeid_expression",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        }
      ]
    }
  },
  {
    "type": "property",
    "named": true,
    "fields": {}
  },
  {
    "type": "qualified_identifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "template_instance",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "range_foreach",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "foreach",
          "named": true
        },
        {
          "type": "foreach_type",
          "named": true
        },
        {
          "type": "lwr_expression",
          "named": true
        },
        {
          "type": "upr_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "register",
    "named": true,
    "fields": {}
  },
  {
    "type": "register64",
    "named": true,
    "fields": {}
  },
  {
    "type": "rel_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "return_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "scope_block_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "block_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "scope_guard_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_block_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "scope_statement_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "statement_list_no_case_no_default",
          "named": true
        }
      ]
    }
  },
  {
    "type": "shared_static_constructor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "shared_static_destructor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "shift_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "shortened_function_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "function_contracts",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_contract_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "out_contract_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "slice",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "slice_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "slice",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "source_file",
    "named": true,
    "root": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "byte_order_mark",
          "named": true
        },
        {
          "type": "module",
          "named": true
        },
        {
          "type": "shebang",
          "named": true
        }
      ]
    }
  },
  {
    "type": "special_keyword",
    "named": true,
    "fields": {}
  },
  {
    "type": "special_token_sequence",
    "named": true,
    "extra": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "filespec",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "specified_function_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "function_contracts",
          "named": true
        },
        {
          "type": "in_contract_expression",
          "named": true
        },
        {
          "type": "in_statement",
          "named": true
        },
        {
          "type": "out_contract_expression",
          "named": true
        },
        {
          "type": "out_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "statement_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "empty_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_block_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "statement_list_no_case_no_default",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "empty_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_block_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "static_assert",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "assert_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "static_constructor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "static_destructor",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "missing_function_body",
          "named": true
        },
        {
          "type": "shortened_function_body",
          "named": true
        },
        {
          "type": "specified_function_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "static_foreach",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "aggregate_foreach",
          "named": true
        },
        {
          "type": "range_foreach",
          "named": true
        }
      ]
    }
  },
  {
    "type": "static_foreach_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alias_assign",
          "named": true
        },
        {
          "type": "alias_declaration",
          "named": true
        },
        {
          "type": "alias_this",
          "named": true
        },
        {
          "type": "allocator",
          "named": true
        },
        {
          "type": "anon_struct_declaration",
          "named": true
        },
        {
          "type": "anon_union_declaration",
          "named": true
        },
        {
          "type": "anonymous_enum_declaration",
          "named": true
        },
        {
          "type": "attribute_specifier",
          "named": true
        },
        {
          "type": "auto_declaration",
          "named": true
        },
        {
          "type": "auto_func_declaration",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "class_template_declaration",
          "named": true
        },
        {
          "type": "conditional_declaration",
          "named": true
        },
        {
          "type": "constructor",
          "named": true
        },
        {
          "type": "constructor_template",
          "named": true
        },
        {
          "type": "deallocator",
          "named": true
        },
        {
          "type": "debug_specification",
          "named": true
        },
        {
          "type": "decl_defs",
          "named": true
        },
        {
          "type": "declaration_block",
          "named": true
        },
        {
          "type": "destructor",
          "named": true
        },
        {
          "type": "empty_declaration",
          "named": true
        },
        {
          "type": "enum_declaration",
          "named": true
        },
        {
          "type": "func_declaration",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "interface_declaration",
          "named": true
        },
        {
          "type": "interface_template_declaration",
          "named": true
        },
        {
          "type": "invariant",
          "named": true
        },
        {
          "type": "mixin_declaration",
          "named": true
        },
        {
          "type": "postblit",
          "named": true
        },
        {
          "type": "shared_static_constructor",
          "named": true
        },
        {
          "type": "shared_static_destructor",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_constructor",
          "named": true
        },
        {
          "type": "static_destructor",
          "named": true
        },
        {
          "type": "static_foreach",
          "named": true
        },
        {
          "type": "static_foreach_declaration",
          "named": true
        },
        {
          "type": "struct_declaration",
          "named": true
        },
        {
          "type": "struct_template_declaration",
          "named": true
        },
        {
          "type": "template_declaration",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "template_mixin_declaration",
          "named": true
        },
        {
          "type": "union_declaration",
          "named": true
        },
        {
          "type": "union_template_declaration",
          "named": true
        },
        {
          "type": "unit_test",
          "named": true
        },
        {
          "type": "var_declarations",
          "named": true
        },
        {
          "type": "version_specification",
          "named": true
        }
      ]
    }
  },
  {
    "type": "static_foreach_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "static_if_condition",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "storage_class",
    "named": true,
    "fields": {}
  },
  {
    "type": "storage_classes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "align_attribute",
          "named": true
        },
        {
          "type": "at_attribute",
          "named": true
        },
        {
          "type": "linkage_attribute",
          "named": true
        },
        {
          "type": "property",
          "named": true
        },
        {
          "type": "storage_class",
          "named": true
        },
        {
          "type": "user_defined_attribute",
          "named": true
        }
      ]
    }
  },
  {
    "type": "string_literals",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alternate_wysiwyg_string",
          "named": true
        },
        {
          "type": "delimited_string",
          "named": true
        },
        {
          "type": "double_quoted_string",
          "named": true
        },
        {
          "type": "hex_string",
          "named": true
        },
        {
          "type": "token_string",
          "named": true
        },
        {
          "type": "wysiwyg_string",
          "named": true
        }
      ]
    }
  },
  {
    "type": "struct_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "struct_initializer",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "struct_member_initializers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "struct_member_initializer",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_initializer",
          "named": true
        },
        {
          "type": "exp_initializer",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "struct_initializer",
          "named": true
        }
      ]
    }
  },
  {
    "type": "struct_member_initializers",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "struct_member_initializer",
          "named": true
        }
      ]
    }
  },
  {
    "type": "struct_template_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        },
        {
          "type": "constraint",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "super_class_or_interface",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "symbol",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "symbol_tail",
          "named": true
        }
      ]
    }
  },
  {
    "type": "symbol_tail",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "symbol_tail",
          "named": true
        },
        {
          "type": "template_instance",
          "named": true
        }
      ]
    }
  },
  {
    "type": "synchronized_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_alias_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator",
          "named": true
        },
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "template_alias_parameter_default",
          "named": true
        },
        {
          "type": "template_alias_parameter_specialization",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "var_declarator",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_alias_parameter_default",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_alias_parameter_specialization",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_argument_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "symbol",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "template_argument_list",
          "named": true
        },
        {
          "type": "template_single_argument",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "constraint",
          "named": true
        },
        {
          "type": "decl_defs",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_instance",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "template_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_mixin",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "mixin_qualified_identifier",
          "named": true
        },
        {
          "type": "mixin_template_name",
          "named": true
        },
        {
          "type": "template_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_mixin_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "constraint",
          "named": true
        },
        {
          "type": "decl_defs",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_parameter_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "template_alias_parameter",
          "named": true
        },
        {
          "type": "template_sequence_parameter",
          "named": true
        },
        {
          "type": "template_this_parameter",
          "named": true
        },
        {
          "type": "template_type_parameter",
          "named": true
        },
        {
          "type": "template_value_parameter",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "template_parameter_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_sequence_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_single_argument",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "alternate_wysiwyg_string",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "delimited_string",
          "named": true
        },
        {
          "type": "double_quoted_string",
          "named": true
        },
        {
          "type": "float_literal",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "hex_string",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "special_keyword",
          "named": true
        },
        {
          "type": "token_string",
          "named": true
        },
        {
          "type": "wysiwyg_string",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_this_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "template_type_parameter",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_type_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "template_type_parameter_default",
          "named": true
        },
        {
          "type": "template_type_parameter_specialization",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_type_parameter_default",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_type_parameter_specialization",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_value_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "alt_declarator",
          "named": true
        },
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "template_value_parameter_default",
          "named": true
        },
        {
          "type": "template_value_parameter_specialization",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "var_declarator",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_value_parameter_default",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "special_keyword",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_value_parameter_specialization",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "test",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "then_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "throw_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "token_no_braces",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "alternate_wysiwyg_string",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "delimited_string",
          "named": true
        },
        {
          "type": "double_quoted_string",
          "named": true
        },
        {
          "type": "float_literal",
          "named": true
        },
        {
          "type": "hex_string",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "keyword",
          "named": true
        },
        {
          "type": "token_string",
          "named": true
        },
        {
          "type": "wysiwyg_string",
          "named": true
        }
      ]
    }
  },
  {
    "type": "token_string",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "token_string_tokens",
          "named": true
        }
      ]
    }
  },
  {
    "type": "token_string_token",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "token_string_tokens",
          "named": true
        }
      ]
    }
  },
  {
    "type": "token_string_tokens",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "token_no_braces",
          "named": true
        },
        {
          "type": "token_string_token",
          "named": true
        }
      ]
    }
  },
  {
    "type": "traits_arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "traits_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "traits_arguments",
          "named": true
        },
        {
          "type": "traits_keyword",
          "named": true
        }
      ]
    }
  },
  {
    "type": "traits_keyword",
    "named": true,
    "fields": {}
  },
  {
    "type": "try_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "catches",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "finally_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "type_ctors",
          "named": true
        },
        {
          "type": "type_suffixes",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_ctor",
    "named": true,
    "fields": {}
  },
  {
    "type": "type_ctors",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "type_ctor",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_specialization",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_suffix",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "function_attributes",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "member_function_attributes",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "parameters",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_suffixes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "type_suffix",
          "named": true
        }
      ]
    }
  },
  {
    "type": "typeid_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "typeof",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unary_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "union_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "union_template_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "aggregate_body",
          "named": true
        },
        {
          "type": "constraint",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unit_test",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "block_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "upr_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "user_defined_attribute",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "argument_list",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "template_instance",
          "named": true
        }
      ]
    }
  },
  {
    "type": "value_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_and_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "assign_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "or_expression",
          "named": true
        },
        {
          "type": "or_or_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "var_declarations",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "basic_type",
          "named": true
        },
        {
          "type": "declarators",
          "named": true
        },
        {
          "type": "fundamental_type",
          "named": true
        },
        {
          "type": "mixin_type",
          "named": true
        },
        {
          "type": "qualified_identifier",
          "named": true
        },
        {
          "type": "storage_classes",
          "named": true
        },
        {
          "type": "traits_expression",
          "named": true
        },
        {
          "type": "typeof",
          "named": true
        },
        {
          "type": "vector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "var_declarator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "type_suffixes",
          "named": true
        }
      ]
    }
  },
  {
    "type": "var_declarator_identifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "array_initializer",
          "named": true
        },
        {
          "type": "exp_initializer",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "struct_initializer",
          "named": true
        },
        {
          "type": "template_parameters",
          "named": true
        },
        {
          "type": "void_initializer",
          "named": true
        }
      ]
    }
  },
  {
    "type": "variadic_arguments_attribute",
    "named": true,
    "fields": {}
  },
  {
    "type": "variadic_arguments_attributes",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "variadic_arguments_attribute",
          "named": true
        }
      ]
    }
  },
  {
    "type": "vector",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "vector_base_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "vector_base_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "version_condition",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "version_specification",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "visibility_attribute",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "qualified_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "void_initializer",
    "named": true,
    "fields": {}
  },
  {
    "type": "while_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_condition",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "with_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asm_statement",
          "named": true
        },
        {
          "type": "block_statement",
          "named": true
        },
        {
          "type": "break_statement",
          "named": true
        },
        {
          "type": "case_range_statement",
          "named": true
        },
        {
          "type": "case_statement",
          "named": true
        },
        {
          "type": "conditional_statement",
          "named": true
        },
        {
          "type": "continue_statement",
          "named": true
        },
        {
          "type": "declaration_statement",
          "named": true
        },
        {
          "type": "default_statement",
          "named": true
        },
        {
          "type": "do_statement",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "final_switch_statement",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "foreach_range_statement",
          "named": true
        },
        {
          "type": "foreach_statement",
          "named": true
        },
        {
          "type": "gcc_asm_statement",
          "named": true
        },
        {
          "type": "goto_statement",
          "named": true
        },
        {
          "type": "if_statement",
          "named": true
        },
        {
          "type": "import_declaration",
          "named": true
        },
        {
          "type": "labeled_statement",
          "named": true
        },
        {
          "type": "mixin_statement",
          "named": true
        },
        {
          "type": "pragma_statement",
          "named": true
        },
        {
          "type": "return_statement",
          "named": true
        },
        {
          "type": "scope_guard_statement",
          "named": true
        },
        {
          "type": "static_assert",
          "named": true
        },
        {
          "type": "static_foreach_statement",
          "named": true
        },
        {
          "type": "switch_statement",
          "named": true
        },
        {
          "type": "symbol",
          "named": true
        },
        {
          "type": "synchronized_statement",
          "named": true
        },
        {
          "type": "template_instance",
          "named": true
        },
        {
          "type": "template_mixin",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        },
        {
          "type": "try_statement",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        },
        {
          "type": "with_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "xor_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "add_expression",
          "named": true
        },
        {
          "type": "and_expression",
          "named": true
        },
        {
          "type": "cast_expression",
          "named": true
        },
        {
          "type": "cat_expression",
          "named": true
        },
        {
          "type": "complement_expression",
          "named": true
        },
        {
          "type": "delete_expression",
          "named": true
        },
        {
          "type": "equal_expression",
          "named": true
        },
        {
          "type": "identity_expression",
          "named": true
        },
        {
          "type": "in_expression",
          "named": true
        },
        {
          "type": "index_expression",
          "named": true
        },
        {
          "type": "mul_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "pow_expression",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "rel_expression",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "slice_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "xor_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "!",
    "named": false
  },
  {
    "type": "!=",
    "named": false
  },
  {
    "type": "#",
    "named": false
  },
  {
    "type": "$",
    "named": false
  },
  {
    "type": "%",
    "named": false
  },
  {
    "type": "%=",
    "named": false
  },
  {
    "type": "&",
    "named": false
  },
  {
    "type": "&&",
    "named": false
  },
  {
    "type": "&=",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": "*",
    "named": false
  },
  {
    "type": "*=",
    "named": false
  },
  {
    "type": "+",
    "named": false
  },
  {
    "type": "++",
    "named": false
  },
  {
    "type": "+=",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "-",
    "named": false
  },
  {
    "type": "--",
    "named": false
  },
  {
    "type": "-=",
    "named": false
  },
  {
    "type": ".",
    "named": false
  },
  {
    "type": "..",
    "named": false
  },
  {
    "type": "...",
    "named": false
  },
  {
    "type": "/",
    "named": false
  },
  {
    "type": "/=",
    "named": false
  },
  {
    "type": ":",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "<",
    "named": false
  },
  {
    "type": "<<",
    "named": false
  },
  {
    "type": "<<=",
    "named": false
  },
  {
    "type": "<=",
    "named": false
  },
  {
    "type": "=",
    "named": false
  },
  {
    "type": "==",
    "named": false
  },
  {
    "type": "=>",
    "named": false
  },
  {
    "type": ">",
    "named": false
  },
  {
    "type": ">=",
    "named": false
  },
  {
    "type": ">>",
    "named": false
  },
  {
    "type": ">>=",
    "named": false
  },
  {
    "type": ">>>",
    "named": false
  },
  {
    "type": ">>>=",
    "named": false
  },
  {
    "type": "?",
    "named": false
  },
  {
    "type": "@",
    "named": false
  },
  {
    "type": "AH",
    "named": false
  },
  {
    "type": "AL",
    "named": false
  },
  {
    "type": "AX",
    "named": false
  },
  {
    "type": "BH",
    "named": false
  },
  {
    "type": "BL",
    "named": false
  },
  {
    "type": "BP",
    "named": false
  },
  {
    "type": "BPL",
    "named": false
  },
  {
    "type": "BX",
    "named": false
  },
  {
    "type": "C",
    "named": false
  },
  {
    "type": "C++",
    "named": false
  },
  {
    "type": "CH",
    "named": false
  },
  {
    "type": "CL",
    "named": false
  },
  {
    "type": "CR0",
    "named": false
  },
  {
    "type": "CR2",
    "named": false
  },
  {
    "type": "CR3",
    "named": false
  },
  {
    "type": "CR4",
    "named": false
  },
  {
    "type": "CS",
    "named": false
  },
  {
    "type": "CX",
    "named": false
  },
  {
    "type": "D",
    "named": false
  },
  {
    "type": "DH",
    "named": false
  },
  {
    "type": "DI",
    "named": false
  },
  {
    "type": "DIL",
    "named": false
  },
  {
    "type": "DL",
    "named": false
  },
  {
    "type": "DR0",
    "named": false
  },
  {
    "type": "DR1",
    "named": false
  },
  {
    "type": "DR2",
    "named": false
  },
  {
    "type": "DR3",
    "named": false
  },
  {
    "type": "DR6",
    "named": false
  },
  {
    "type": "DR7",
    "named": false
  },
  {
    "type": "DS",
    "named": false
  },
  {
    "type": "DX",
    "named": false
  },
  {
    "type": "EAX",
    "named": false
  },
  {
    "type": "EBP",
    "named": false
  },
  {
    "type": "EBX",
    "named": false
  },
  {
    "type": "ECX",
    "named": false
  },
  {
    "type": "EDI",
    "named": false
  },
  {
    "type": "EDX",
    "named": false
  },
  {
    "type": "ES",
    "named": false
  },
  {
    "type": "ESI",
    "named": false
  },
  {
    "type": "ESP",
    "named": false
  },
  {
    "type": "FS",
    "named": false
  },
  {
    "type": "GS",
    "named": false
  },
  {
    "type": "MM0",
    "named": false
  },
  {
    "type": "MM1",
    "named": false
  },
  {
    "type": "MM2",
    "named": false
  },
  {
    "type": "MM3",
    "named": false
  },
  {
    "type": "MM4",
    "named": false
  },
  {
    "type": "MM5",
    "named": false
  },
  {
    "type": "MM6",
    "named": false
  },
  {
    "type": "MM7",
    "named": false
  },
  {
    "type": "Objective-C",
    "named": false
  },
  {
    "type": "R10",
    "named": false
  },
  {
    "type": "R10B",
    "named": false
  },
  {
    "type": "R10D",
    "named": false
  },
  {
    "type": "R10W",
    "named": false
  },
  {
    "type": "R11",
    "named": false
  },
  {
    "type": "R11B",
    "named": false
  },
  {
    "type": "R11D",
    "named": false
  },
  {
    "type": "R11W",
    "named": false
  },
  {
    "type": "R12",
    "named": false
  },
  {
    "type": "R12B",
    "named": false
  },
  {
    "type": "R12D",
    "named": false
  },
  {
    "type": "R12W",
    "named": false
  },
  {
    "type": "R13",
    "named": false
  },
  {
    "type": "R13B",
    "named": false
  },
  {
    "type": "R13D",
    "named": false
  },
  {
    "type": "R13W",
    "named": false
  },
  {
    "type": "R14",
    "named": false
  },
  {
    "type": "R14B",
    "named": false
  },
  {
    "type": "R14D",
    "named": false
  },
  {
    "type": "R14W",
    "named": false
  },
  {
    "type": "R15",
    "named": false
  },
  {
    "type": "R15B",
    "named": false
  },
  {
    "type": "R15D",
    "named": false
  },
  {
    "type": "R15W",
    "named": false
  },
  {
    "type": "R8",
    "named": false
  },
  {
    "type": "R8B",
    "named": false
  },
  {
    "type": "R8D",
    "named": false
  },
  {
    "type": "R8W",
    "named": false
  },
  {
    "type": "R9",
    "named": false
  },
  {
    "type": "R9B",
    "named": false
  },
  {
    "type": "R9D",
    "named": false
  },
  {
    "type": "R9W",
    "named": false
  },
  {
    "type": "RAX",
    "named": false
  },
  {
    "type": "RBP",
    "named": false
  },
  {
    "type": "RBX",
    "named": false
  },
  {
    "type": "RCX",
    "named": false
  },
  {
    "type": "RDI",
    "named": false
  },
  {
    "type": "RDX",
    "named": false
  },
  {
    "type": "RSI",
    "named": false
  },
  {
    "type": "RSP",
    "named": false
  },
  {
    "type": "SI",
    "named": false
  },
  {
    "type": "SIL",
    "named": false
  },
  {
    "type": "SP",
    "named": false
  },
  {
    "type": "SPL",
    "named": false
  },
  {
    "type": "SS",
    "named": false
  },
  {
    "type": "ST",
    "named": false
  },
  {
    "type": "ST(0)",
    "named": false
  },
  {
    "type": "ST(1)",
    "named": false
  },
  {
    "type": "ST(2)",
    "named": false
  },
  {
    "type": "ST(3)",
    "named": false
  },
  {
    "type": "ST(4)",
    "named": false
  },
  {
    "type": "ST(5)",
    "named": false
  },
  {
    "type": "ST(6)",
    "named": false
  },
  {
    "type": "ST(7)",
    "named": false
  },
  {
    "type": "System",
    "named": false
  },
  {
    "type": "TR3",
    "named": false
  },
  {
    "type": "TR4",
    "named": false
  },
  {
    "type": "TR5",
    "named": false
  },
  {
    "type": "TR6",
    "named": false
  },
  {
    "type": "TR7",
    "named": false
  },
  {
    "type": "Windows",
    "named": false
  },
  {
    "type": "XMM0",
    "named": false
  },
  {
    "type": "XMM1",
    "named": false
  },
  {
    "type": "XMM10",
    "named": false
  },
  {
    "type": "XMM11",
    "named": false
  },
  {
    "type": "XMM12",
    "named": false
  },
  {
    "type": "XMM13",
    "named": false
  },
  {
    "type": "XMM14",
    "named": false
  },
  {
    "type": "XMM15",
    "named": false
  },
  {
    "type": "XMM2",
    "named": false
  },
  {
    "type": "XMM3",
    "named": false
  },
  {
    "type": "XMM4",
    "named": false
  },
  {
    "type": "XMM5",
    "named": false
  },
  {
    "type": "XMM6",
    "named": false
  },
  {
    "type": "XMM7",
    "named": false
  },
  {
    "type": "XMM8",
    "named": false
  },
  {
    "type": "XMM9",
    "named": false
  },
  {
    "type": "YMM0",
    "named": false
  },
  {
    "type": "YMM1",
    "named": false
  },
  {
    "type": "YMM10",
    "named": false
  },
  {
    "type": "YMM11",
    "named": false
  },
  {
    "type": "YMM12",
    "named": false
  },
  {
    "type": "YMM13",
    "named": false
  },
  {
    "type": "YMM14",
    "named": false
  },
  {
    "type": "YMM15",
    "named": false
  },
  {
    "type": "YMM2",
    "named": false
  },
  {
    "type": "YMM3",
    "named": false
  },
  {
    "type": "YMM4",
    "named": false
  },
  {
    "type": "YMM5",
    "named": false
  },
  {
    "type": "YMM6",
    "named": false
  },
  {
    "type": "YMM7",
    "named": false
  },
  {
    "type": "YMM8",
    "named": false
  },
  {
    "type": "YMM9",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "^",
    "named": false
  },
  {
    "type": "^=",
    "named": false
  },
  {
    "type": "^^",
    "named": false
  },
  {
    "type": "^^=",
    "named": false
  },
  {
    "type": "__FILE_FULL_PATH__",
    "named": false
  },
  {
    "type": "__FILE__",
    "named": false
  },
  {
    "type": "__FUNCTION__",
    "named": false
  },
  {
    "type": "__LINE__",
    "named": false
  },
  {
    "type": "__LOCAL_SIZE",
    "named": false
  },
  {
    "type": "__MODULE__",
    "named": false
  },
  {
    "type": "__PRETTY_FUNCTION__",
    "named": false
  },
  {
    "type": "__gshared",
    "named": false
  },
  {
    "type": "__parameters",
    "named": false
  },
  {
    "type": "__traits",
    "named": false
  },
  {
    "type": "__vector",
    "named": false
  },
  {
    "type": "_actually_a_float_literal_without_its_trailing_period",
    "named": false
  },
  {
    "type": "abstract",
    "named": false
  },
  {
    "type": "alias",
    "named": false
  },
  {
    "type": "align",
    "named": false
  },
  {
    "type": "allMembers",
    "named": false
  },
  {
    "type": "alternate_wysiwyg_string",
    "named": true
  },
  {
    "type": "asm",
    "named": false
  },
  {
    "type": "assert",
    "named": false
  },
  {
    "type": "auto",
    "named": false
  },
  {
    "type": "block_comment",
    "named": true,
    "extra": true
  },
  {
    "type": "body",
    "named": false
  },
  {
    "type": "bool",
    "named": false
  },
  {
    "type": "break",
    "named": false
  },
  {
    "type": "byte",
    "named": false
  },
  {
    "type": "byte_order_mark",
    "named": true
  },
  {
    "type": "case",
    "named": false
  },
  {
    "type": "cast",
    "named": false
  },
  {
    "type": "catch",
    "named": false
  },
  {
    "type": "cdouble",
    "named": false
  },
  {
    "type": "cent",
    "named": false
  },
  {
    "type": "cfloat",
    "named": false
  },
  {
    "type": "char",
    "named": false
  },
  {
    "type": "character_literal",
    "named": true
  },
  {
    "type": "child",
    "named": false
  },
  {
    "type": "class",
    "named": false
  },
  {
    "type": "classInstanceSize",
    "named": false
  },
  {
    "type": "compiles",
    "named": false
  },
  {
    "type": "const",
    "named": false
  },
  {
    "type": "continue",
    "named": false
  },
  {
    "type": "creal",
    "named": false
  },
  {
    "type": "db",
    "named": false
  },
  {
    "type": "dchar",
    "named": false
  },
  {
    "type": "dd",
    "named": false
  },
  {
    "type": "de",
    "named": false
  },
  {
    "type": "debug",
    "named": false
  },
  {
    "type": "default",
    "named": false
  },
  {
    "type": "delegate",
    "named": false
  },
  {
    "type": "delete",
    "named": false
  },
  {
    "type": "delimited_string",
    "named": true
  },
  {
    "type": "deprecated",
    "named": false
  },
  {
    "type": "derivedMembers",
    "named": false
  },
  {
    "type": "df",
    "named": false
  },
  {
    "type": "di",
    "named": false
  },
  {
    "type": "disable",
    "named": false
  },
  {
    "type": "dl",
    "named": false
  },
  {
    "type": "do",
    "named": false
  },
  {
    "type": "double",
    "named": false
  },
  {
    "type": "double_quoted_string",
    "named": true
  },
  {
    "type": "dq",
    "named": false
  },
  {
    "type": "ds",
    "named": false
  },
  {
    "type": "dw",
    "named": false
  },
  {
    "type": "dword",
    "named": false
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "enum",
    "named": false
  },
  {
    "type": "even",
    "named": false
  },
  {
    "type": "exit",
    "named": false
  },
  {
    "type": "export",
    "named": false
  },
  {
    "type": "extern",
    "named": false
  },
  {
    "type": "failure",
    "named": false
  },
  {
    "type": "false",
    "named": false
  },
  {
    "type": "far",
    "named": false
  },
  {
    "type": "filespec",
    "named": true
  },
  {
    "type": "final",
    "named": false
  },
  {
    "type": "finally",
    "named": false
  },
  {
    "type": "float",
    "named": false
  },
  {
    "type": "for",
    "named": false
  },
  {
    "type": "foreach",
    "named": false
  },
  {
    "type": "foreach_reverse",
    "named": false
  },
  {
    "type": "function",
    "named": false
  },
  {
    "type": "getAliasThis",
    "named": false
  },
  {
    "type": "getAttributes",
    "named": false
  },
  {
    "type": "getCppNamespaces",
    "named": false
  },
  {
    "type": "getFunctionAttributes",
    "named": false
  },
  {
    "type": "getFunctionVariadicStyle",
    "named": false
  },
  {
    "type": "getLinkage",
    "named": false
  },
  {
    "type": "getLocation",
    "named": false
  },
  {
    "type": "getMember",
    "named": false
  },
  {
    "type": "getOverloads",
    "named": false
  },
  {
    "type": "getParameterStorageClasses",
    "named": false
  },
  {
    "type": "getPointerBitmap",
    "named": false
  },
  {
    "type": "getProtection",
    "named": false
  },
  {
    "type": "getTargetInfo",
    "named": false
  },
  {
    "type": "getUnitTests",
    "named": false
  },
  {
    "type": "getVirtualFunctions",
    "named": false
  },
  {
    "type": "getVirtualIndex",
    "named": false
  },
  {
    "type": "getVirtualMethods",
    "named": false
  },
  {
    "type": "getVisibility",
    "named": false
  },
  {
    "type": "goto",
    "named": false
  },
  {
    "type": "hasCopyConstructor",
    "named": false
  },
  {
    "type": "hasMember",
    "named": false
  },
  {
    "type": "hasPostblit",
    "named": false
  },
  {
    "type": "hex_string",
    "named": true
  },
  {
    "type": "identifier",
    "named": false
  },
  {
    "type": "identifier",
    "named": true
  },
  {
    "type": "idouble",
    "named": false
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "ifloat",
    "named": false
  },
  {
    "type": "immutable",
    "named": false
  },
  {
    "type": "import",
    "named": false
  },
  {
    "type": "in",
    "named": false
  },
  {
    "type": "inout",
    "named": false
  },
  {
    "type": "int",
    "named": false
  },
  {
    "type": "integer_literal",
    "named": true
  },
  {
    "type": "interface",
    "named": false
  },
  {
    "type": "invariant",
    "named": false
  },
  {
    "type": "ireal",
    "named": false
  },
  {
    "type": "is",
    "named": false
  },
  {
    "type": "isAbstractClass",
    "named": false
  },
  {
    "type": "isAbstractFunction",
    "named": false
  },
  {
    "type": "isArithmetic",
    "named": false
  },
  {
    "type": "isAssociativeArray",
    "named": false
  },
  {
    "type": "isCopyable",
    "named": false
  },
  {
    "type": "isDeprecated",
    "named": false
  },
  {
    "type": "isDisabled",
    "named": false
  },
  {
    "type": "isFinalClass",
    "named": false
  },
  {
    "type": "isFinalFunction",
    "named": false
  },
  {
    "type": "isFloating",
    "named": false
  },
  {
    "type": "isFuture",
    "named": false
  },
  {
    "type": "isIntegral",
    "named": false
  },
  {
    "type": "isLazy",
    "named": false
  },
  {
    "type": "isModule",
    "named": false
  },
  {
    "type": "isNested",
    "named": false
  },
  {
    "type": "isOut",
    "named": false
  },
  {
    "type": "isOverrideFunction",
    "named": false
  },
  {
    "type": "isPOD",
    "named": false
  },
  {
    "type": "isPackage",
    "named": false
  },
  {
    "type": "isRef",
    "named": false
  },
  {
    "type": "isReturnOnStack",
    "named": false
  },
  {
    "type": "isSame",
    "named": false
  },
  {
    "type": "isScalar",
    "named": false
  },
  {
    "type": "isStaticArray",
    "named": false
  },
  {
    "type": "isStaticFunction",
    "named": false
  },
  {
    "type": "isTemplate",
    "named": false
  },
  {
    "type": "isUnsigned",
    "named": false
  },
  {
    "type": "isVirtualFunction",
    "named": false
  },
  {
    "type": "isVirtualMethod",
    "named": false
  },
  {
    "type": "isZeroInit",
    "named": false
  },
  {
    "type": "lazy",
    "named": false
  },
  {
    "type": "line",
    "named": false
  },
  {
    "type": "line_comment",
    "named": true,
    "extra": true
  },
  {
    "type": "live",
    "named": false
  },
  {
    "type": "long",
    "named": false
  },
  {
    "type": "macro",
    "named": false
  },
  {
    "type": "mixin",
    "named": false
  },
  {
    "type": "module",
    "named": false
  },
  {
    "type": "naked",
    "named": false
  },
  {
    "type": "near",
    "named": false
  },
  {
    "type": "nesting_block_comment",
    "named": true,
    "extra": true
  },
  {
    "type": "new",
    "named": false
  },
  {
    "type": "nogc",
    "named": false
  },
  {
    "type": "nothrow",
    "named": false
  },
  {
    "type": "null",
    "named": false
  },
  {
    "type": "offsetof",
    "named": false
  },
  {
    "type": "out",
    "named": false
  },
  {
    "type": "override",
    "named": false
  },
  {
    "type": "package",
    "named": false
  },
  {
    "type": "parent",
    "named": false
  },
  {
    "type": "pragma",
    "named": false
  },
  {
    "type": "private",
    "named": false
  },
  {
    "type": "property",
    "named": false
  },
  {
    "type": "protected",
    "named": false
  },
  {
    "type": "ptr",
    "named": false
  },
  {
    "type": "public",
    "named": false
  },
  {
    "type": "pure",
    "named": false
  },
  {
    "type": "qword",
    "named": false
  },
  {
    "type": "q{",
    "named": false
  },
  {
    "type": "real",
    "named": false
  },
  {
    "type": "ref",
    "named": false
  },
  {
    "type": "return",
    "named": false
  },
  {
    "type": "safe",
    "named": false
  },
  {
    "type": "scope",
    "named": false
  },
  {
    "type": "seg",
    "named": false
  },
  {
    "type": "shared",
    "named": false
  },
  {
    "type": "shebang",
    "named": true
  },
  {
    "type": "short",
    "named": false
  },
  {
    "type": "static",
    "named": false
  },
  {
    "type": "struct",
    "named": false
  },
  {
    "type": "success",
    "named": false
  },
  {
    "type": "super",
    "named": false
  },
  {
    "type": "switch",
    "named": false
  },
  {
    "type": "synchronized",
    "named": false
  },
  {
    "type": "system",
    "named": false
  },
  {
    "type": "template",
    "named": false
  },
  {
    "type": "this",
    "named": false
  },
  {
    "type": "throw",
    "named": false
  },
  {
    "type": "toType",
    "named": false
  },
  {
    "type": "true",
    "named": false
  },
  {
    "type": "trusted",
    "named": false
  },
  {
    "type": "try",
    "named": false
  },
  {
    "type": "typeid",
    "named": false
  },
  {
    "type": "typeof",
    "named": false
  },
  {
    "type": "ubyte",
    "named": false
  },
  {
    "type": "ucent",
    "named": false
  },
  {
    "type": "uint",
    "named": false
  },
  {
    "type": "ulong",
    "named": false
  },
  {
    "type": "union",
    "named": false
  },
  {
    "type": "unittest",
    "named": false
  },
  {
    "type": "ushort",
    "named": false
  },
  {
    "type": "version",
    "named": false
  },
  {
    "type": "void",
    "named": false
  },
  {
    "type": "wchar",
    "named": false
  },
  {
    "type": "while",
    "named": false
  },
  {
    "type": "with",
    "named": false
  },
  {
    "type": "word",
    "named": false
  },
  {
    "type": "wysiwyg_string",
    "named": true
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "|",
    "named": false
  },
  {
    "type": "|=",
    "named": false
  },
  {
    "type": "||",
    "named": false
  },
  {
    "type": "}",
    "named": false
  },
  {
    "type": "~",
    "named": false
  },
  {
    "type": "~=",
    "named": false
  }
]