[
  {
    "type": "additive_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "annotated_lambda",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "label",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "annotation",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "constructor_invocation",
          "named": true
        },
        {
          "type": "use_site_target",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anonymous_function",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "function_body",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "function_value_parameters",
            "named": true
          }
        ]
      },
      "return_type": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "dynamic",
            "named": false
          },
          {
            "type": "function_type",
            "named": true
          },
          {
            "type": "not_nullable_type",
            "named": true
          },
          {
            "type": "nullable_type",
            "named": true
          },
          {
            "type": "parenthesized_type",
            "named": true
          },
          {
            "type": "type_modifiers",
            "named": true
          },
          {
            "type": "user_type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anonymous_initializer",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "statements",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    }
  },
  {
    "type": "as_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assignment",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "directly_assignable_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "boolean_literal",
    "named": true,
    "fields": {}
  },
  {
    "type": "call_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "call_suffix",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "call_suffix",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotated_lambda",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "value_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "callable_reference",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "catch_block",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "statements",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "character_escape_seq",
    "named": true,
    "fields": {}
  },
  {
    "type": "character_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "character_escape_seq",
          "named": true
        }
      ]
    }
  },
  {
    "type": "check_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "anonymous_initializer",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "companion_object",
          "named": true
        },
        {
          "type": "function_declaration",
          "named": true
        },
        {
          "type": "getter",
          "named": true
        },
        {
          "type": "object_declaration",
          "named": true
        },
        {
          "type": "property_declaration",
          "named": true
        },
        {
          "type": "secondary_constructor",
          "named": true
        },
        {
          "type": "setter",
          "named": true
        },
        {
          "type": "type_alias",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "class_body",
            "named": true
          },
          {
            "type": "enum_class_body",
            "named": true
          }
        ]
      },
      "constraints": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_constraints",
            "named": true
          }
        ]
      },
      "delegation_specifiers": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "delegation_specifier",
            "named": true
          }
        ]
      },
      "kind": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "class",
            "named": false
          },
          {
            "type": "enum",
            "named": false
          },
          {
            "type": "interface",
            "named": false
          }
        ]
      },
      "modifiers": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "modifiers",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_identifier",
            "named": true
          }
        ]
      },
      "primary_constructor": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "primary_constructor",
            "named": true
          }
        ]
      },
      "type_parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "class_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "class_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "modifiers",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "collection_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "companion_object",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "class_body",
            "named": true
          }
        ]
      },
      "delegation_specifiers": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "delegation_specifier",
            "named": true
          }
        ]
      },
      "modifiers": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "modifiers",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "comparison_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "conjunction_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor_delegation_call",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "value_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor_invocation",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "user_type",
          "named": true
        },
        {
          "type": "value_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "control_structure_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "assignment",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "do_while_statement",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_declaration",
          "named": true
        },
        {
          "type": "getter",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "label",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_declaration",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "property_declaration",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "setter",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "statements",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "type_alias",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "delegation_specifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "constructor_invocation",
          "named": true
        },
        {
          "type": "explicit_delegation",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "directly_assignable_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_suffix",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "navigation_suffix",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "disjunction_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "do_while_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "control_structure_body",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "as_expression",
            "named": true
          },
          {
            "type": "bin_literal",
            "named": true
          },
          {
            "type": "boolean_literal",
            "named": true
          },
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "callable_reference",
            "named": true
          },
          {
            "type": "character_literal",
            "named": true
          },
          {
            "type": "check_expression",
            "named": true
          },
          {
            "type": "collection_literal",
            "named": true
          },
          {
            "type": "comparison_expression",
            "named": true
          },
          {
            "type": "conjunction_expression",
            "named": true
          },
          {
            "type": "disjunction_expression",
            "named": true
          },
          {
            "type": "elvis_expression",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "hex_literal",
            "named": true
          },
          {
            "type": "if_expression",
            "named": true
          },
          {
            "type": "indexing_expression",
            "named": true
          },
          {
            "type": "infix_expression",
            "named": true
          },
          {
            "type": "integer_literal",
            "named": true
          },
          {
            "type": "jump_expression",
            "named": true
          },
          {
            "type": "lambda_literal",
            "named": true
          },
          {
            "type": "long_literal",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "navigation_expression",
            "named": true
          },
          {
            "type": "null",
            "named": false
          },
          {
            "type": "object_literal",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "prefix_expression",
            "named": true
          },
          {
            "type": "range_expression",
            "named": true
          },
          {
            "type": "real_literal",
            "named": true
          },
          {
            "type": "simple_identifier",
            "named": true
          },
          {
            "type": "spread_expression",
            "named": true
          },
          {
            "type": "string_literal",
            "named": true
          },
          {
            "type": "super_expression",
            "named": true
          },
          {
            "type": "this_expression",
            "named": true
          },
          {
            "type": "try_expression",
            "named": true
          },
          {
            "type": "unsigned_literal",
            "named": true
          },
          {
            "type": "when_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "elvis_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_class_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "anonymous_initializer",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "companion_object",
          "named": true
        },
        {
          "type": "enum_entry",
          "named": true
        },
        {
          "type": "function_declaration",
          "named": true
        },
        {
          "type": "getter",
          "named": true
        },
        {
          "type": "object_declaration",
          "named": true
        },
        {
          "type": "property_declaration",
          "named": true
        },
        {
          "type": "secondary_constructor",
          "named": true
        },
        {
          "type": "setter",
          "named": true
        },
        {
          "type": "type_alias",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_entry",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "class_body",
          "named": true
        },
        {
          "type": "modifiers",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "value_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "equality_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "explicit_delegation",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "file_annotation",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "constructor_invocation",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "finally_block",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "statements",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      }
    }
  },
  {
    "type": "for_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "control_structure_body",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "as_expression",
            "named": true
          },
          {
            "type": "bin_literal",
            "named": true
          },
          {
            "type": "boolean_literal",
            "named": true
          },
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "callable_reference",
            "named": true
          },
          {
            "type": "character_literal",
            "named": true
          },
          {
            "type": "check_expression",
            "named": true
          },
          {
            "type": "collection_literal",
            "named": true
          },
          {
            "type": "comparison_expression",
            "named": true
          },
          {
            "type": "conjunction_expression",
            "named": true
          },
          {
            "type": "disjunction_expression",
            "named": true
          },
          {
            "type": "elvis_expression",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "hex_literal",
            "named": true
          },
          {
            "type": "if_expression",
            "named": true
          },
          {
            "type": "indexing_expression",
            "named": true
          },
          {
            "type": "infix_expression",
            "named": true
          },
          {
            "type": "integer_literal",
            "named": true
          },
          {
            "type": "jump_expression",
            "named": true
          },
          {
            "type": "lambda_literal",
            "named": true
          },
          {
            "type": "long_literal",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "navigation_expression",
            "named": true
          },
          {
            "type": "null",
            "named": false
          },
          {
            "type": "object_literal",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "prefix_expression",
            "named": true
          },
          {
            "type": "range_expression",
            "named": true
          },
          {
            "type": "real_literal",
            "named": true
          },
          {
            "type": "simple_identifier",
            "named": true
          },
          {
            "type": "spread_expression",
            "named": true
          },
          {
            "type": "string_literal",
            "named": true
          },
          {
            "type": "super_expression",
            "named": true
          },
          {
            "type": "this_expression",
            "named": true
          },
          {
            "type": "try_expression",
            "named": true
          },
          {
            "type": "unsigned_literal",
            "named": true
          },
          {
            "type": "when_expression",
            "named": true
          }
        ]
      },
      "variable": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "variable_declaration",
            "named": true
          }
        ]
      },
      "variables": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "multi_variable_declaration",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "statements",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "function_body",
            "named": true
          }
        ]
      },
      "constraints": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_constraints",
            "named": true
          }
        ]
      },
      "modifiers": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "modifiers",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "simple_identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "function_value_parameters",
            "named": true
          }
        ]
      },
      "receiver": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "dynamic",
            "named": false
          },
          {
            "type": "nullable_type",
            "named": true
          },
          {
            "type": "parenthesized_type",
            "named": true
          },
          {
            "type": "type_modifiers",
            "named": true
          },
          {
            "type": "user_type",
            "named": true
          }
        ]
      },
      "return_type": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "dynamic",
            "named": false
          },
          {
            "type": "function_type",
            "named": true
          },
          {
            "type": "not_nullable_type",
            "named": true
          },
          {
            "type": "nullable_type",
            "named": true
          },
          {
            "type": "parenthesized_type",
            "named": true
          },
          {
            "type": "type_modifiers",
            "named": true
          },
          {
            "type": "user_type",
            "named": true
          }
        ]
      },
      "type_parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "function_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "function_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "function_type_parameters",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_type_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parameter",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_value_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parameter",
          "named": true
        },
        {
          "type": "parameter_modifiers",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "getter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_body",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "modifiers",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "identifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "simple_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "if_expression",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "control_structure_body",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "as_expression",
            "named": true
          },
          {
            "type": "bin_literal",
            "named": true
          },
          {
            "type": "boolean_literal",
            "named": true
          },
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "callable_reference",
            "named": true
          },
          {
            "type": "character_literal",
            "named": true
          },
          {
            "type": "check_expression",
            "named": true
          },
          {
            "type": "collection_literal",
            "named": true
          },
          {
            "type": "comparison_expression",
            "named": true
          },
          {
            "type": "conjunction_expression",
            "named": true
          },
          {
            "type": "disjunction_expression",
            "named": true
          },
          {
            "type": "elvis_expression",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "hex_literal",
            "named": true
          },
          {
            "type": "if_expression",
            "named": true
          },
          {
            "type": "indexing_expression",
            "named": true
          },
          {
            "type": "infix_expression",
            "named": true
          },
          {
            "type": "integer_literal",
            "named": true
          },
          {
            "type": "jump_expression",
            "named": true
          },
          {
            "type": "lambda_literal",
            "named": true
          },
          {
            "type": "long_literal",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "navigation_expression",
            "named": true
          },
          {
            "type": "null",
            "named": false
          },
          {
            "type": "object_literal",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "prefix_expression",
            "named": true
          },
          {
            "type": "range_expression",
            "named": true
          },
          {
            "type": "real_literal",
            "named": true
          },
          {
            "type": "simple_identifier",
            "named": true
          },
          {
            "type": "spread_expression",
            "named": true
          },
          {
            "type": "string_literal",
            "named": true
          },
          {
            "type": "super_expression",
            "named": true
          },
          {
            "type": "this_expression",
            "named": true
          },
          {
            "type": "try_expression",
            "named": true
          },
          {
            "type": "unsigned_literal",
            "named": true
          },
          {
            "type": "when_expression",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "control_structure_body",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "import_alias",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_header",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "import_alias",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "import_header",
          "named": true
        }
      ]
    }
  },
  {
    "type": "indexing_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "indexing_suffix",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "indexing_suffix",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "infix_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "inheritance_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "interpolated_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "interpolated_identifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "jump_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "label",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "label",
    "named": true,
    "fields": {}
  },
  {
    "type": "lambda_literal",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "statements",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "lambda_parameters",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "lambda_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "multi_variable_declaration",
          "named": true
        },
        {
          "type": "variable_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "long_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "member_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "modifiers",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "class_modifier",
          "named": true
        },
        {
          "type": "function_modifier",
          "named": true
        },
        {
          "type": "inheritance_modifier",
          "named": true
        },
        {
          "type": "member_modifier",
          "named": true
        },
        {
          "type": "parameter_modifier",
          "named": true
        },
        {
          "type": "platform_modifier",
          "named": true
        },
        {
          "type": "property_modifier",
          "named": true
        },
        {
          "type": "visibility_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "multi_variable_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "variable_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "multiplicative_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "navigation_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "navigation_suffix",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "navigation_suffix",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "not_nullable_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "parenthesized_user_type",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "nullable_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "object_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "class_body",
            "named": true
          }
        ]
      },
      "delegation_specifiers": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "delegation_specifier",
            "named": true
          }
        ]
      },
      "modifiers": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "modifiers",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "object_literal",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "class_body",
            "named": true
          }
        ]
      },
      "delegation_specifiers": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "delegation_specifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "package_header",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameter_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "parameter_modifiers",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "parameter_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parameter_with_optional_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parameter_modifiers",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parenthesized_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parenthesized_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parenthesized_user_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "parenthesized_user_type",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "platform_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "postfix_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "prefix_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "label",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "primary_constructor",
    "named": true,
    "fields": {
      "modifiers": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "modifiers",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": ",",
            "named": false
          },
          {
            "type": "class_parameter",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "property_declaration",
    "named": true,
    "fields": {
      "constraints": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_constraints",
            "named": true
          }
        ]
      },
      "delegate": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "property_delegate",
            "named": true
          }
        ]
      },
      "expression": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "as_expression",
            "named": true
          },
          {
            "type": "bin_literal",
            "named": true
          },
          {
            "type": "boolean_literal",
            "named": true
          },
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "callable_reference",
            "named": true
          },
          {
            "type": "character_literal",
            "named": true
          },
          {
            "type": "check_expression",
            "named": true
          },
          {
            "type": "collection_literal",
            "named": true
          },
          {
            "type": "comparison_expression",
            "named": true
          },
          {
            "type": "conjunction_expression",
            "named": true
          },
          {
            "type": "disjunction_expression",
            "named": true
          },
          {
            "type": "elvis_expression",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "hex_literal",
            "named": true
          },
          {
            "type": "if_expression",
            "named": true
          },
          {
            "type": "indexing_expression",
            "named": true
          },
          {
            "type": "infix_expression",
            "named": true
          },
          {
            "type": "integer_literal",
            "named": true
          },
          {
            "type": "jump_expression",
            "named": true
          },
          {
            "type": "lambda_literal",
            "named": true
          },
          {
            "type": "long_literal",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "navigation_expression",
            "named": true
          },
          {
            "type": "null",
            "named": false
          },
          {
            "type": "object_literal",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "prefix_expression",
            "named": true
          },
          {
            "type": "range_expression",
            "named": true
          },
          {
            "type": "real_literal",
            "named": true
          },
          {
            "type": "simple_identifier",
            "named": true
          },
          {
            "type": "spread_expression",
            "named": true
          },
          {
            "type": "string_literal",
            "named": true
          },
          {
            "type": "super_expression",
            "named": true
          },
          {
            "type": "this_expression",
            "named": true
          },
          {
            "type": "try_expression",
            "named": true
          },
          {
            "type": "unsigned_literal",
            "named": true
          },
          {
            "type": "when_expression",
            "named": true
          }
        ]
      },
      "getter": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "getter",
            "named": true
          }
        ]
      },
      "kind": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "val",
            "named": false
          },
          {
            "type": "var",
            "named": false
          }
        ]
      },
      "modifiers": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "modifiers",
            "named": true
          }
        ]
      },
      "receiver": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "dynamic",
            "named": false
          },
          {
            "type": "nullable_type",
            "named": true
          },
          {
            "type": "parenthesized_type",
            "named": true
          },
          {
            "type": "type_modifiers",
            "named": true
          },
          {
            "type": "user_type",
            "named": true
          }
        ]
      },
      "setter": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "setter",
            "named": true
          }
        ]
      },
      "type_parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      },
      "variable": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "variable_declaration",
            "named": true
          }
        ]
      },
      "variables": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "multi_variable_declaration",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "property_delegate",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "range_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "range_test",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "secondary_constructor",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "statements",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      },
      "delegation": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "constructor_delegation_call",
            "named": true
          }
        ]
      },
      "modifiers": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "modifiers",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "function_value_parameters",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "setter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_body",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "modifiers",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parameter_with_optional_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "shebang_line",
    "named": true,
    "fields": {}
  },
  {
    "type": "simple_identifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "source_file",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "assignment",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "do_while_statement",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "file_annotation",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_declaration",
          "named": true
        },
        {
          "type": "getter",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "import_list",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "label",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_declaration",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "package_header",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "property_declaration",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "setter",
          "named": true
        },
        {
          "type": "shebang_line",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "type_alias",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "spread_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "statements",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "assignment",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "do_while_statement",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "for_statement",
          "named": true
        },
        {
          "type": "function_declaration",
          "named": true
        },
        {
          "type": "getter",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "label",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_declaration",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "property_declaration",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "setter",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "type_alias",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        },
        {
          "type": "while_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "string_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "interpolated_expression",
          "named": true
        },
        {
          "type": "interpolated_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "super_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "this_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "try_expression",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "statements",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      },
      "catch": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "catch_block",
            "named": true
          }
        ]
      },
      "finally": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "finally_block",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "finally_block",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_alias",
    "named": true,
    "fields": {
      "modifiers": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "modifiers",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "type_identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "dynamic",
            "named": false
          },
          {
            "type": "function_type",
            "named": true
          },
          {
            "type": "not_nullable_type",
            "named": true
          },
          {
            "type": "nullable_type",
            "named": true
          },
          {
            "type": "parenthesized_type",
            "named": true
          },
          {
            "type": "type_modifiers",
            "named": true
          },
          {
            "type": "user_type",
            "named": true
          }
        ]
      },
      "type_parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "type_arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "type_projection",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_constraint",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_constraints",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "type_constraint",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_identifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "type_modifiers",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "type_parameter_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_parameter_modifiers",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "reification_modifier",
          "named": true
        },
        {
          "type": "variance_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "type_parameter",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_projection",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "type_projection_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_projection_modifiers",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "variance_modifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_test",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unsigned_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "use_site_target",
    "named": true,
    "fields": {}
  },
  {
    "type": "user_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "value_argument",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "value_arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "value_argument",
          "named": true
        }
      ]
    }
  },
  {
    "type": "variable_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "not_nullable_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parenthesized_type",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "type_modifiers",
          "named": true
        },
        {
          "type": "user_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "variance_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "visibility_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "when_condition",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "range_test",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "type_test",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "when_entry",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "control_structure_body",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "when_condition",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "when_expression",
    "named": true,
    "fields": {
      "entry": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "when_entry",
            "named": true
          }
        ]
      },
      "subject": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "when_subject",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "when_subject",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "as_expression",
          "named": true
        },
        {
          "type": "bin_literal",
          "named": true
        },
        {
          "type": "boolean_literal",
          "named": true
        },
        {
          "type": "call_expression",
          "named": true
        },
        {
          "type": "callable_reference",
          "named": true
        },
        {
          "type": "character_literal",
          "named": true
        },
        {
          "type": "check_expression",
          "named": true
        },
        {
          "type": "collection_literal",
          "named": true
        },
        {
          "type": "comparison_expression",
          "named": true
        },
        {
          "type": "conjunction_expression",
          "named": true
        },
        {
          "type": "disjunction_expression",
          "named": true
        },
        {
          "type": "elvis_expression",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "hex_literal",
          "named": true
        },
        {
          "type": "if_expression",
          "named": true
        },
        {
          "type": "indexing_expression",
          "named": true
        },
        {
          "type": "infix_expression",
          "named": true
        },
        {
          "type": "integer_literal",
          "named": true
        },
        {
          "type": "jump_expression",
          "named": true
        },
        {
          "type": "lambda_literal",
          "named": true
        },
        {
          "type": "long_literal",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "navigation_expression",
          "named": true
        },
        {
          "type": "object_literal",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_expression",
          "named": true
        },
        {
          "type": "range_expression",
          "named": true
        },
        {
          "type": "real_literal",
          "named": true
        },
        {
          "type": "simple_identifier",
          "named": true
        },
        {
          "type": "spread_expression",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "super_expression",
          "named": true
        },
        {
          "type": "this_expression",
          "named": true
        },
        {
          "type": "try_expression",
          "named": true
        },
        {
          "type": "unsigned_literal",
          "named": true
        },
        {
          "type": "variable_declaration",
          "named": true
        },
        {
          "type": "when_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "while_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "control_structure_body",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "as_expression",
            "named": true
          },
          {
            "type": "bin_literal",
            "named": true
          },
          {
            "type": "boolean_literal",
            "named": true
          },
          {
            "type": "call_expression",
            "named": true
          },
          {
            "type": "callable_reference",
            "named": true
          },
          {
            "type": "character_literal",
            "named": true
          },
          {
            "type": "check_expression",
            "named": true
          },
          {
            "type": "collection_literal",
            "named": true
          },
          {
            "type": "comparison_expression",
            "named": true
          },
          {
            "type": "conjunction_expression",
            "named": true
          },
          {
            "type": "disjunction_expression",
            "named": true
          },
          {
            "type": "elvis_expression",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "hex_literal",
            "named": true
          },
          {
            "type": "if_expression",
            "named": true
          },
          {
            "type": "indexing_expression",
            "named": true
          },
          {
            "type": "infix_expression",
            "named": true
          },
          {
            "type": "integer_literal",
            "named": true
          },
          {
            "type": "jump_expression",
            "named": true
          },
          {
            "type": "lambda_literal",
            "named": true
          },
          {
            "type": "long_literal",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "navigation_expression",
            "named": true
          },
          {
            "type": "null",
            "named": false
          },
          {
            "type": "object_literal",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "prefix_expression",
            "named": true
          },
          {
            "type": "range_expression",
            "named": true
          },
          {
            "type": "real_literal",
            "named": true
          },
          {
            "type": "simple_identifier",
            "named": true
          },
          {
            "type": "spread_expression",
            "named": true
          },
          {
            "type": "string_literal",
            "named": true
          },
          {
            "type": "super_expression",
            "named": true
          },
          {
            "type": "this_expression",
            "named": true
          },
          {
            "type": "try_expression",
            "named": true
          },
          {
            "type": "unsigned_literal",
            "named": true
          },
          {
            "type": "when_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "!",
    "named": false
  },
  {
    "type": "!!",
    "named": false
  },
  {
    "type": "!=",
    "named": false
  },
  {
    "type": "!==",
    "named": false
  },
  {
    "type": "!in",
    "named": false
  },
  {
    "type": "!is",
    "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": "L",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "\\u",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "abstract",
    "named": false
  },
  {
    "type": "actual",
    "named": false
  },
  {
    "type": "annotation",
    "named": false
  },
  {
    "type": "as",
    "named": false
  },
  {
    "type": "as?",
    "named": false
  },
  {
    "type": "bin_literal",
    "named": true
  },
  {
    "type": "break",
    "named": false
  },
  {
    "type": "break@",
    "named": false
  },
  {
    "type": "by",
    "named": false
  },
  {
    "type": "catch",
    "named": false
  },
  {
    "type": "class",
    "named": false
  },
  {
    "type": "companion",
    "named": false
  },
  {
    "type": "constructor",
    "named": false
  },
  {
    "type": "continue",
    "named": false
  },
  {
    "type": "continue@",
    "named": false
  },
  {
    "type": "crossinline",
    "named": false
  },
  {
    "type": "data",
    "named": false
  },
  {
    "type": "delegate",
    "named": false
  },
  {
    "type": "do",
    "named": false
  },
  {
    "type": "dynamic",
    "named": false
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "enum",
    "named": false
  },
  {
    "type": "expect",
    "named": false
  },
  {
    "type": "external",
    "named": false
  },
  {
    "type": "false",
    "named": false
  },
  {
    "type": "field",
    "named": false
  },
  {
    "type": "file",
    "named": false
  },
  {
    "type": "final",
    "named": false
  },
  {
    "type": "finally",
    "named": false
  },
  {
    "type": "for",
    "named": false
  },
  {
    "type": "fun",
    "named": false
  },
  {
    "type": "get",
    "named": false
  },
  {
    "type": "hex_literal",
    "named": true
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "import",
    "named": false
  },
  {
    "type": "in",
    "named": false
  },
  {
    "type": "infix",
    "named": false
  },
  {
    "type": "init",
    "named": false
  },
  {
    "type": "inline",
    "named": false
  },
  {
    "type": "inner",
    "named": false
  },
  {
    "type": "integer_literal",
    "named": true
  },
  {
    "type": "interface",
    "named": false
  },
  {
    "type": "internal",
    "named": false
  },
  {
    "type": "is",
    "named": false
  },
  {
    "type": "lateinit",
    "named": false
  },
  {
    "type": "line_comment",
    "named": true
  },
  {
    "type": "multiline_comment",
    "named": true
  },
  {
    "type": "noinline",
    "named": false
  },
  {
    "type": "null",
    "named": false
  },
  {
    "type": "object",
    "named": false
  },
  {
    "type": "open",
    "named": false
  },
  {
    "type": "operator",
    "named": false
  },
  {
    "type": "out",
    "named": false
  },
  {
    "type": "override",
    "named": false
  },
  {
    "type": "package",
    "named": false
  },
  {
    "type": "param",
    "named": false
  },
  {
    "type": "private",
    "named": false
  },
  {
    "type": "property",
    "named": false
  },
  {
    "type": "property_modifier",
    "named": true
  },
  {
    "type": "protected",
    "named": false
  },
  {
    "type": "public",
    "named": false
  },
  {
    "type": "real_literal",
    "named": true
  },
  {
    "type": "receiver",
    "named": false
  },
  {
    "type": "reification_modifier",
    "named": true
  },
  {
    "type": "return",
    "named": false
  },
  {
    "type": "return@",
    "named": false
  },
  {
    "type": "sealed",
    "named": false
  },
  {
    "type": "set",
    "named": false
  },
  {
    "type": "setparam",
    "named": false
  },
  {
    "type": "super",
    "named": false
  },
  {
    "type": "super@",
    "named": false
  },
  {
    "type": "suspend",
    "named": false
  },
  {
    "type": "tailrec",
    "named": false
  },
  {
    "type": "this",
    "named": false
  },
  {
    "type": "this@",
    "named": false
  },
  {
    "type": "throw",
    "named": false
  },
  {
    "type": "true",
    "named": false
  },
  {
    "type": "try",
    "named": false
  },
  {
    "type": "typealias",
    "named": false
  },
  {
    "type": "val",
    "named": false
  },
  {
    "type": "value",
    "named": false
  },
  {
    "type": "var",
    "named": false
  },
  {
    "type": "vararg",
    "named": false
  },
  {
    "type": "when",
    "named": false
  },
  {
    "type": "where",
    "named": false
  },
  {
    "type": "while",
    "named": false
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "||",
    "named": false
  },
  {
    "type": "}",
    "named": false
  }
]