[
  {
    "type": "_literal",
    "named": true,
    "subtypes": [
      {
        "type": "decimal_floating_point_literal",
        "named": true
      },
      {
        "type": "decimal_integer_literal",
        "named": true
      },
      {
        "type": "false",
        "named": true
      },
      {
        "type": "hex_integer_literal",
        "named": true
      },
      {
        "type": "list_literal",
        "named": true
      },
      {
        "type": "null_literal",
        "named": true
      },
      {
        "type": "record_literal",
        "named": true
      },
      {
        "type": "set_or_map_literal",
        "named": true
      },
      {
        "type": "string_literal",
        "named": true
      },
      {
        "type": "symbol_literal",
        "named": true
      },
      {
        "type": "true",
        "named": true
      }
    ]
  },
  {
    "type": "_statement",
    "named": true,
    "subtypes": [
      {
        "type": "assert_statement",
        "named": true
      },
      {
        "type": "block",
        "named": true
      },
      {
        "type": "break_statement",
        "named": true
      },
      {
        "type": "continue_statement",
        "named": true
      },
      {
        "type": "do_statement",
        "named": true
      },
      {
        "type": "expression_statement",
        "named": true
      },
      {
        "type": "for_statement",
        "named": true
      },
      {
        "type": "if_statement",
        "named": true
      },
      {
        "type": "local_function_declaration",
        "named": true
      },
      {
        "type": "local_variable_declaration",
        "named": true
      },
      {
        "type": "return_statement",
        "named": true
      },
      {
        "type": "switch_statement",
        "named": true
      },
      {
        "type": "try_statement",
        "named": true
      },
      {
        "type": "while_statement",
        "named": true
      },
      {
        "type": "yield_each_statement",
        "named": true
      },
      {
        "type": "yield_statement",
        "named": true
      }
    ]
  },
  {
    "type": "abstract",
    "named": true,
    "fields": {}
  },
  {
    "type": "additive_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "additive_operator",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "additive_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "annotation",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "argument",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "argument_part",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "argument",
          "named": true
        },
        {
          "type": "named_argument",
          "named": true
        }
      ]
    }
  },
  {
    "type": "as_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "assert_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "assertion",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assertion",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "assert_builtin",
          "named": true
        },
        {
          "type": "assertion_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assertion_arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assignable_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "conditional_assignable_selector",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_invocation",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assignment_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "assignable_expression",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "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
          }
        ]
      },
      "right": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "assignment_expression_without_cascade",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "assignable_expression",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "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
          }
        ]
      },
      "right": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression_without_cascade",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression_without_cascade",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "await_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "base",
    "named": true,
    "fields": {}
  },
  {
    "type": "binary_operator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "additive_operator",
          "named": true
        },
        {
          "type": "bitwise_operator",
          "named": true
        },
        {
          "type": "multiplicative_operator",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "shift_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "bitwise_and_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "bitwise_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "bitwise_or_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "bitwise_xor_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "break_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "break_builtin",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "cascade_section",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "argument_part",
          "named": true
        },
        {
          "type": "assignment_expression_without_cascade",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_selector",
          "named": true
        },
        {
          "type": "conditional_assignable_selector",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression_without_cascade",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "cascade_selector",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "index_selector",
          "named": true
        },
        {
          "type": "nullable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "case_builtin",
    "named": true,
    "fields": {}
  },
  {
    "type": "cast_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "catch_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "catch_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "catch_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "function_body",
          "named": true
        },
        {
          "type": "method_signature",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_definition",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "class_body",
            "named": true
          }
        ]
      },
      "interfaces": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "interfaces",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "superclass": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "superclass",
            "named": true
          }
        ]
      },
      "type_parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "abstract",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "base",
          "named": true
        },
        {
          "type": "interface",
          "named": true
        },
        {
          "type": "mixin",
          "named": true
        },
        {
          "type": "mixin_application_class",
          "named": true
        },
        {
          "type": "sealed",
          "named": true
        }
      ]
    }
  },
  {
    "type": "combinator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "comment",
    "named": true,
    "extra": true,
    "fields": {}
  },
  {
    "type": "conditional_assignable_selector",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "index_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "conditional_expression",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression_without_cascade",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression_without_cascade",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression_without_cascade",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression_without_cascade",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "configurable_uri",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "configuration_uri",
          "named": true
        },
        {
          "type": "uri",
          "named": true
        }
      ]
    }
  },
  {
    "type": "configuration_uri",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "configuration_uri_condition",
          "named": true
        },
        {
          "type": "uri",
          "named": true
        }
      ]
    }
  },
  {
    "type": "configuration_uri_condition",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "uri_test",
          "named": true
        }
      ]
    }
  },
  {
    "type": "const_object_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constant_constructor_signature",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "formal_parameter_list",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constant_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "for_element",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_element",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "minus_operator",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "pair",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "qualified",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "spread_element",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor_invocation",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor_param",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "final_builtin",
          "named": true
        },
        {
          "type": "formal_parameter_list",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "inferred_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_parameters",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor_signature",
    "named": true,
    "fields": {
      "name": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": ".",
            "named": false
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "new",
            "named": false
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameter_list",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "constructor_tearoff",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "continue_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "constant_constructor_signature",
          "named": true
        },
        {
          "type": "constructor_signature",
          "named": true
        },
        {
          "type": "factory_constructor_signature",
          "named": true
        },
        {
          "type": "final_builtin",
          "named": true
        },
        {
          "type": "function_signature",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "getter_signature",
          "named": true
        },
        {
          "type": "identifier_list",
          "named": true
        },
        {
          "type": "inferred_type",
          "named": true
        },
        {
          "type": "initialized_identifier_list",
          "named": true
        },
        {
          "type": "initializers",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "operator_signature",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "redirecting_factory_constructor_signature",
          "named": true
        },
        {
          "type": "redirection",
          "named": true
        },
        {
          "type": "setter_signature",
          "named": true
        },
        {
          "type": "static_final_declaration_list",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "do_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "documentation_comment",
    "named": true,
    "extra": true,
    "fields": {}
  },
  {
    "type": "dotted_identifier_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "enum_constant",
          "named": true
        },
        {
          "type": "function_body",
          "named": true
        },
        {
          "type": "method_signature",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_constant",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "argument_part",
          "named": true
        },
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "enum_body",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "interfaces",
          "named": true
        },
        {
          "type": "mixins",
          "named": true
        },
        {
          "type": "type_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "equality_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "escape_sequence",
    "named": true,
    "fields": {}
  },
  {
    "type": "expression_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "extension_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "declaration",
          "named": true
        },
        {
          "type": "function_body",
          "named": true
        },
        {
          "type": "method_signature",
          "named": true
        }
      ]
    }
  },
  {
    "type": "extension_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "extension_body",
            "named": true
          }
        ]
      },
      "class": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": ".",
            "named": false
          },
          {
            "type": "Function",
            "named": false
          },
          {
            "type": "function_type",
            "named": true
          },
          {
            "type": "nullable_type",
            "named": true
          },
          {
            "type": "record_type",
            "named": true
          },
          {
            "type": "type_arguments",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "void_type",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type_parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "extension_type_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "class_body",
            "named": true
          }
        ]
      },
      "interfaces": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "interfaces",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "representation": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "representation_declaration",
            "named": true
          }
        ]
      },
      "type_parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "const_builtin",
          "named": true
        }
      ]
    }
  },
  {
    "type": "factory_constructor_signature",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "formal_parameter_list",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "false",
    "named": true,
    "fields": {}
  },
  {
    "type": "field_initializer",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "final_builtin",
    "named": true,
    "fields": {}
  },
  {
    "type": "finally_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "block",
          "named": true
        }
      ]
    }
  },
  {
    "type": "for_element",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "for_element",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_element",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "pair",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "spread_element",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "for_loop_parts",
          "named": true
        }
      ]
    }
  },
  {
    "type": "for_loop_parts",
    "named": true,
    "fields": {
      "condition": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      },
      "init": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "local_variable_declaration",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "update": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "final_builtin",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "inferred_type",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "for_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "for_loop_parts",
          "named": true
        }
      ]
    }
  },
  {
    "type": "formal_parameter",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "constructor_param",
          "named": true
        },
        {
          "type": "final_builtin",
          "named": true
        },
        {
          "type": "formal_parameter_list",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "inferred_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "super_formal_parameter",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_parameters",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "formal_parameter_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "formal_parameter",
          "named": true
        },
        {
          "type": "optional_formal_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_expression",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "function_expression_body",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "formal_parameter_list",
            "named": true
          },
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "function_expression_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_signature",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "formal_parameter_list",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_parameters",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "function_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "parameter_type_list",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_parameters",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "getter_signature",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "identifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "identifier_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "if_element",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "for_element",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_element",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "pair",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "spread_element",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "for_element",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_element",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "pair",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "spread_element",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "if_null_expression",
    "named": true,
    "fields": {
      "first": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      },
      "second": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "if_statement",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_or_export",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "library_export",
          "named": true
        },
        {
          "type": "library_import",
          "named": true
        }
      ]
    }
  },
  {
    "type": "import_specification",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "combinator",
          "named": true
        },
        {
          "type": "configurable_uri",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "uri",
          "named": true
        }
      ]
    }
  },
  {
    "type": "index_selector",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "inferred_type",
    "named": true,
    "fields": {}
  },
  {
    "type": "initialized_identifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "initialized_identifier_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "initialized_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "initialized_variable_definition",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "final_builtin",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "inferred_type",
          "named": true
        },
        {
          "type": "initialized_identifier",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "initializer_list_entry",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "assertion",
          "named": true
        },
        {
          "type": "field_initializer",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "super",
          "named": true
        }
      ]
    }
  },
  {
    "type": "initializers",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "initializer_list_entry",
          "named": true
        }
      ]
    }
  },
  {
    "type": "interface",
    "named": true,
    "fields": {}
  },
  {
    "type": "interfaces",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "is_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "label",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "lambda_expression",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "function_body",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "function_signature",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "library_export",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "combinator",
          "named": true
        },
        {
          "type": "configurable_uri",
          "named": true
        }
      ]
    }
  },
  {
    "type": "library_import",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "import_specification",
          "named": true
        }
      ]
    }
  },
  {
    "type": "library_name",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "dotted_identifier_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "list_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "for_element",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_element",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "pair",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "spread_element",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "list_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "rest_pattern",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "local_function_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "lambda_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "local_variable_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "initialized_variable_definition",
          "named": true
        },
        {
          "type": "pattern_variable_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "logical_and_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "logical_and_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "logical_or_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "logical_or_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "map_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "method_signature",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "constructor_signature",
          "named": true
        },
        {
          "type": "factory_constructor_signature",
          "named": true
        },
        {
          "type": "function_signature",
          "named": true
        },
        {
          "type": "getter_signature",
          "named": true
        },
        {
          "type": "initializers",
          "named": true
        },
        {
          "type": "operator_signature",
          "named": true
        },
        {
          "type": "setter_signature",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mixin",
    "named": true,
    "fields": {}
  },
  {
    "type": "mixin_application",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "interfaces",
          "named": true
        },
        {
          "type": "mixins",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mixin_application_class",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "mixin_application",
          "named": true
        },
        {
          "type": "type_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mixin_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "base",
          "named": true
        },
        {
          "type": "class_body",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "interfaces",
          "named": true
        },
        {
          "type": "mixin",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_parameters",
          "named": true
        }
      ]
    }
  },
  {
    "type": "mixins",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "multiplicative_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "multiplicative_operator",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "multiplicative_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "named_argument",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "label",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "named_parameter_types",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "typed_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "negation_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "new_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "normal_parameter_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "typed_identifier",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "null_assert_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "null_check_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "null_literal",
    "named": true,
    "fields": {}
  },
  {
    "type": "nullable_selector",
    "named": true,
    "fields": {}
  },
  {
    "type": "nullable_type",
    "named": true,
    "fields": {}
  },
  {
    "type": "object_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "operator_signature",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "formal_parameter_list",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "optional_formal_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "formal_parameter",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "optional_parameter_types",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "named_parameter_types",
          "named": true
        },
        {
          "type": "optional_positional_parameter_types",
          "named": true
        }
      ]
    }
  },
  {
    "type": "optional_positional_parameter_types",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "normal_parameter_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pair",
    "named": true,
    "fields": {
      "key": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_literal",
            "named": true
          },
          {
            "type": "additive_expression",
            "named": true
          },
          {
            "type": "assignment_expression",
            "named": true
          },
          {
            "type": "bitwise_and_expression",
            "named": true
          },
          {
            "type": "bitwise_or_expression",
            "named": true
          },
          {
            "type": "bitwise_xor_expression",
            "named": true
          },
          {
            "type": "cascade_section",
            "named": true
          },
          {
            "type": "conditional_expression",
            "named": true
          },
          {
            "type": "const_object_expression",
            "named": true
          },
          {
            "type": "constructor_tearoff",
            "named": true
          },
          {
            "type": "equality_expression",
            "named": true
          },
          {
            "type": "function_expression",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "if_null_expression",
            "named": true
          },
          {
            "type": "logical_and_expression",
            "named": true
          },
          {
            "type": "logical_or_expression",
            "named": true
          },
          {
            "type": "multiplicative_expression",
            "named": true
          },
          {
            "type": "new_expression",
            "named": true
          },
          {
            "type": "parenthesized_expression",
            "named": true
          },
          {
            "type": "pattern_assignment",
            "named": true
          },
          {
            "type": "postfix_expression",
            "named": true
          },
          {
            "type": "relational_expression",
            "named": true
          },
          {
            "type": "rethrow_expression",
            "named": true
          },
          {
            "type": "selector",
            "named": true
          },
          {
            "type": "shift_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          },
          {
            "type": "switch_expression",
            "named": true
          },
          {
            "type": "this",
            "named": true
          },
          {
            "type": "throw_expression",
            "named": true
          },
          {
            "type": "type_cast_expression",
            "named": true
          },
          {
            "type": "type_test_expression",
            "named": true
          },
          {
            "type": "unary_expression",
            "named": true
          },
          {
            "type": "unconditional_assignable_selector",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "parameter_type_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "normal_parameter_type",
          "named": true
        },
        {
          "type": "optional_parameter_types",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parenthesized_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "part_directive",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "uri",
          "named": true
        }
      ]
    }
  },
  {
    "type": "part_of_directive",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "dotted_identifier_list",
          "named": true
        },
        {
          "type": "part_of_builtin",
          "named": true
        },
        {
          "type": "uri",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pattern_assignment",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pattern_variable_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "final_builtin",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "inferred_type",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "postfix_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "assignable_expression",
          "named": true
        },
        {
          "type": "constructor_invocation",
          "named": true
        },
        {
          "type": "postfix_operator",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "postfix_operator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "increment_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "prefix_operator",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "minus_operator",
          "named": true
        },
        {
          "type": "negation_operator",
          "named": true
        },
        {
          "type": "tilde_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "program",
    "named": true,
    "root": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "class_definition",
          "named": true
        },
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "enum_declaration",
          "named": true
        },
        {
          "type": "extension_declaration",
          "named": true
        },
        {
          "type": "extension_type_declaration",
          "named": true
        },
        {
          "type": "final_builtin",
          "named": true
        },
        {
          "type": "function_body",
          "named": true
        },
        {
          "type": "function_signature",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "getter_signature",
          "named": true
        },
        {
          "type": "import_or_export",
          "named": true
        },
        {
          "type": "inferred_type",
          "named": true
        },
        {
          "type": "initialized_identifier_list",
          "named": true
        },
        {
          "type": "library_name",
          "named": true
        },
        {
          "type": "mixin_declaration",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "part_directive",
          "named": true
        },
        {
          "type": "part_of_directive",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "script_tag",
          "named": true
        },
        {
          "type": "setter_signature",
          "named": true
        },
        {
          "type": "static_final_declaration_list",
          "named": true
        },
        {
          "type": "type_alias",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "qualified",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_field",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "label",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "label",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_field",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "record_type_field",
          "named": true
        },
        {
          "type": "record_type_named_field",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_type_field",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_type_named_field",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "typed_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "redirecting_factory_constructor_signature",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "formal_parameter_list",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "redirection",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "this",
          "named": true
        }
      ]
    }
  },
  {
    "type": "relational_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "relational_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "representation_declaration",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": ".",
            "named": false
          },
          {
            "type": "Function",
            "named": false
          },
          {
            "type": "function_type",
            "named": true
          },
          {
            "type": "nullable_type",
            "named": true
          },
          {
            "type": "record_type",
            "named": true
          },
          {
            "type": "type_arguments",
            "named": true
          },
          {
            "type": "type_identifier",
            "named": true
          },
          {
            "type": "void_type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "rest_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "rethrow_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "rethrow_builtin",
          "named": true
        }
      ]
    }
  },
  {
    "type": "return_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "scoped_identifier",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "scope": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "script_tag",
    "named": true,
    "fields": {}
  },
  {
    "type": "sealed",
    "named": true,
    "fields": {}
  },
  {
    "type": "selector",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "argument_part",
          "named": true
        },
        {
          "type": "conditional_assignable_selector",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "set_or_map_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "for_element",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_element",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "pair",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "spread_element",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "setter_signature",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "formal_parameter_list",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_parameters",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "shift_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "shift_operator",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "shift_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "spread_element",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "static_final_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "static_final_declaration_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "static_final_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "string_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "template_substitution",
          "named": true
        }
      ]
    }
  },
  {
    "type": "super",
    "named": true,
    "fields": {}
  },
  {
    "type": "super_formal_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "const_builtin",
          "named": true
        },
        {
          "type": "final_builtin",
          "named": true
        },
        {
          "type": "formal_parameter_list",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "inferred_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_parameters",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "superclass",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "mixins",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "switch_statement_case",
          "named": true
        },
        {
          "type": "switch_statement_default",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_expression",
    "named": true,
    "fields": {
      "body": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": ",",
            "named": false
          },
          {
            "type": "switch_expression_case",
            "named": true
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "switch_expression_case",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "switch_block",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "switch_statement_case",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "_statement",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "case_builtin",
          "named": true
        },
        {
          "type": "cast_pattern",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constant_pattern",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "equality_operator",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "label",
          "named": true
        },
        {
          "type": "list_pattern",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_and_operator",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "logical_or_operator",
          "named": true
        },
        {
          "type": "map_pattern",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "null_assert_pattern",
          "named": true
        },
        {
          "type": "null_check_pattern",
          "named": true
        },
        {
          "type": "object_pattern",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "relational_operator",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        },
        {
          "type": "variable_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_statement_default",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_statement",
          "named": true
        },
        {
          "type": "label",
          "named": true
        }
      ]
    }
  },
  {
    "type": "symbol_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_substitution",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "identifier_dollar_escaped",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "this",
    "named": true,
    "fields": {}
  },
  {
    "type": "throw_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "throw_expression_without_cascade",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression_without_cascade",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression_without_cascade",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "tilde_operator",
    "named": true,
    "fields": {}
  },
  {
    "type": "true",
    "named": true,
    "fields": {}
  },
  {
    "type": "try_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "block",
          "named": true
        },
        {
          "type": "catch_clause",
          "named": true
        },
        {
          "type": "finally_clause",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_alias",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "formal_parameter_list",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "type_parameters",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_bound",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_cast",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "as_operator",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_cast_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "type_bound",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "type_parameter",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_test",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "is_operator",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_test_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "typed_identifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unary_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "assignable_expression",
          "named": true
        },
        {
          "type": "await_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "increment_operator",
          "named": true
        },
        {
          "type": "minus_operator",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "prefix_operator",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "tilde_operator",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unconditional_assignable_selector",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "index_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "uri",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "uri_test",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "dotted_identifier_list",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "variable_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "final_builtin",
          "named": true
        },
        {
          "type": "function_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "inferred_type",
          "named": true
        },
        {
          "type": "nullable_type",
          "named": true
        },
        {
          "type": "record_type",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        },
        {
          "type": "void_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "while_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "yield_each_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "yield_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_literal",
          "named": true
        },
        {
          "type": "additive_expression",
          "named": true
        },
        {
          "type": "assignment_expression",
          "named": true
        },
        {
          "type": "bitwise_and_expression",
          "named": true
        },
        {
          "type": "bitwise_or_expression",
          "named": true
        },
        {
          "type": "bitwise_xor_expression",
          "named": true
        },
        {
          "type": "cascade_section",
          "named": true
        },
        {
          "type": "conditional_expression",
          "named": true
        },
        {
          "type": "const_object_expression",
          "named": true
        },
        {
          "type": "constructor_tearoff",
          "named": true
        },
        {
          "type": "equality_expression",
          "named": true
        },
        {
          "type": "function_expression",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "if_null_expression",
          "named": true
        },
        {
          "type": "logical_and_expression",
          "named": true
        },
        {
          "type": "logical_or_expression",
          "named": true
        },
        {
          "type": "multiplicative_expression",
          "named": true
        },
        {
          "type": "new_expression",
          "named": true
        },
        {
          "type": "parenthesized_expression",
          "named": true
        },
        {
          "type": "pattern_assignment",
          "named": true
        },
        {
          "type": "postfix_expression",
          "named": true
        },
        {
          "type": "relational_expression",
          "named": true
        },
        {
          "type": "rethrow_expression",
          "named": true
        },
        {
          "type": "selector",
          "named": true
        },
        {
          "type": "shift_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "switch_expression",
          "named": true
        },
        {
          "type": "this",
          "named": true
        },
        {
          "type": "throw_expression",
          "named": true
        },
        {
          "type": "type_cast_expression",
          "named": true
        },
        {
          "type": "type_test_expression",
          "named": true
        },
        {
          "type": "unary_expression",
          "named": true
        },
        {
          "type": "unconditional_assignable_selector",
          "named": true
        }
      ]
    }
  },
  {
    "type": "\n",
    "named": false
  },
  {
    "type": "!",
    "named": false
  },
  {
    "type": "\"",
    "named": false
  },
  {
    "type": "\"\"\"",
    "named": false
  },
  {
    "type": "#",
    "named": false
  },
  {
    "type": "#!",
    "named": false
  },
  {
    "type": "$",
    "named": false
  },
  {
    "type": "%",
    "named": false
  },
  {
    "type": "%=",
    "named": false
  },
  {
    "type": "&",
    "named": false
  },
  {
    "type": "&&",
    "named": false
  },
  {
    "type": "&=",
    "named": false
  },
  {
    "type": "'",
    "named": false
  },
  {
    "type": "'''",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": "*",
    "named": false
  },
  {
    "type": "*=",
    "named": false
  },
  {
    "type": "+=",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "-=",
    "named": false
  },
  {
    "type": ".",
    "named": false
  },
  {
    "type": "..",
    "named": false
  },
  {
    "type": "...",
    "named": false
  },
  {
    "type": "/",
    "named": false
  },
  {
    "type": "/*",
    "named": false
  },
  {
    "type": "//",
    "named": false
  },
  {
    "type": "///",
    "named": false
  },
  {
    "type": "/=",
    "named": false
  },
  {
    "type": ":",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "<",
    "named": false
  },
  {
    "type": "<<",
    "named": false
  },
  {
    "type": "<<=",
    "named": false
  },
  {
    "type": "<=",
    "named": false
  },
  {
    "type": "=",
    "named": false
  },
  {
    "type": "==",
    "named": false
  },
  {
    "type": "=>",
    "named": false
  },
  {
    "type": ">",
    "named": false
  },
  {
    "type": ">=",
    "named": false
  },
  {
    "type": ">>",
    "named": false
  },
  {
    "type": ">>=",
    "named": false
  },
  {
    "type": ">>>",
    "named": false
  },
  {
    "type": ">>>=",
    "named": false
  },
  {
    "type": "?",
    "named": false
  },
  {
    "type": "?.",
    "named": false
  },
  {
    "type": "?..",
    "named": false
  },
  {
    "type": "??",
    "named": false
  },
  {
    "type": "??=",
    "named": false
  },
  {
    "type": "@",
    "named": false
  },
  {
    "type": "Function",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "[]",
    "named": false
  },
  {
    "type": "[]=",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "^",
    "named": false
  },
  {
    "type": "^=",
    "named": false
  },
  {
    "type": "abstract",
    "named": false
  },
  {
    "type": "as",
    "named": false
  },
  {
    "type": "assert_builtin",
    "named": true
  },
  {
    "type": "async",
    "named": false
  },
  {
    "type": "async*",
    "named": false
  },
  {
    "type": "await",
    "named": false
  },
  {
    "type": "base",
    "named": false
  },
  {
    "type": "break_builtin",
    "named": true
  },
  {
    "type": "case",
    "named": false
  },
  {
    "type": "catch",
    "named": false
  },
  {
    "type": "class",
    "named": false
  },
  {
    "type": "const_builtin",
    "named": true
  },
  {
    "type": "continue",
    "named": false
  },
  {
    "type": "covariant",
    "named": false
  },
  {
    "type": "decimal_floating_point_literal",
    "named": true
  },
  {
    "type": "decimal_integer_literal",
    "named": true
  },
  {
    "type": "default",
    "named": false
  },
  {
    "type": "deferred",
    "named": false
  },
  {
    "type": "do",
    "named": false
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "enum",
    "named": false
  },
  {
    "type": "equality_operator",
    "named": true
  },
  {
    "type": "export",
    "named": false
  },
  {
    "type": "extends",
    "named": false
  },
  {
    "type": "extension",
    "named": false
  },
  {
    "type": "external",
    "named": false
  },
  {
    "type": "factory",
    "named": false
  },
  {
    "type": "false",
    "named": false
  },
  {
    "type": "final",
    "named": false
  },
  {
    "type": "finally",
    "named": false
  },
  {
    "type": "for",
    "named": false
  },
  {
    "type": "get",
    "named": false
  },
  {
    "type": "hex_integer_literal",
    "named": true
  },
  {
    "type": "hide",
    "named": false
  },
  {
    "type": "identifier_dollar_escaped",
    "named": true
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "implements",
    "named": false
  },
  {
    "type": "import",
    "named": false
  },
  {
    "type": "in",
    "named": false
  },
  {
    "type": "increment_operator",
    "named": true
  },
  {
    "type": "inline",
    "named": false
  },
  {
    "type": "interface",
    "named": false
  },
  {
    "type": "is",
    "named": false
  },
  {
    "type": "late",
    "named": false
  },
  {
    "type": "library",
    "named": false
  },
  {
    "type": "minus_operator",
    "named": true
  },
  {
    "type": "mixin",
    "named": false
  },
  {
    "type": "native",
    "named": false
  },
  {
    "type": "new",
    "named": false
  },
  {
    "type": "null",
    "named": false
  },
  {
    "type": "on",
    "named": false
  },
  {
    "type": "operator",
    "named": false
  },
  {
    "type": "part",
    "named": false
  },
  {
    "type": "part_of_builtin",
    "named": true
  },
  {
    "type": "r\"",
    "named": false
  },
  {
    "type": "r\"\"\"",
    "named": false
  },
  {
    "type": "r'",
    "named": false
  },
  {
    "type": "r'''",
    "named": false
  },
  {
    "type": "required",
    "named": false
  },
  {
    "type": "rethrow_builtin",
    "named": true
  },
  {
    "type": "return",
    "named": false
  },
  {
    "type": "sealed",
    "named": false
  },
  {
    "type": "set",
    "named": false
  },
  {
    "type": "show",
    "named": false
  },
  {
    "type": "static",
    "named": false
  },
  {
    "type": "super",
    "named": false
  },
  {
    "type": "switch",
    "named": false
  },
  {
    "type": "sync*",
    "named": false
  },
  {
    "type": "this",
    "named": false
  },
  {
    "type": "throw",
    "named": false
  },
  {
    "type": "true",
    "named": false
  },
  {
    "type": "try",
    "named": false
  },
  {
    "type": "type",
    "named": false
  },
  {
    "type": "type_identifier",
    "named": true
  },
  {
    "type": "typedef",
    "named": false
  },
  {
    "type": "var",
    "named": false
  },
  {
    "type": "void_type",
    "named": true
  },
  {
    "type": "when",
    "named": false
  },
  {
    "type": "while",
    "named": false
  },
  {
    "type": "with",
    "named": false
  },
  {
    "type": "yield",
    "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
  }
]