schemas/java.json

[
  {
    "type": "_literal",
    "named": true,
    "subtypes": [
      {
        "type": "binary_integer_literal",
        "named": true
      },
      {
        "type": "character_literal",
        "named": true
      },
      {
        "type": "decimal_floating_point_literal",
        "named": true
      },
      {
        "type": "decimal_integer_literal",
        "named": true
      },
      {
        "type": "false",
        "named": true
      },
      {
        "type": "hex_floating_point_literal",
        "named": true
      },
      {
        "type": "hex_integer_literal",
        "named": true
      },
      {
        "type": "null_literal",
        "named": true
      },
      {
        "type": "octal_integer_literal",
        "named": true
      },
      {
        "type": "string_literal",
        "named": true
      },
      {
        "type": "true",
        "named": true
      }
    ]
  },
  {
    "type": "_simple_type",
    "named": true,
    "subtypes": [
      {
        "type": "boolean_type",
        "named": true
      },
      {
        "type": "floating_point_type",
        "named": true
      },
      {
        "type": "generic_type",
        "named": true
      },
      {
        "type": "integral_type",
        "named": true
      },
      {
        "type": "scoped_type_identifier",
        "named": true
      },
      {
        "type": "type_identifier",
        "named": true
      },
      {
        "type": "void_type",
        "named": true
      }
    ]
  },
  {
    "type": "_type",
    "named": true,
    "subtypes": [
      {
        "type": "_unannotated_type",
        "named": true
      },
      {
        "type": "annotated_type",
        "named": true
      }
    ]
  },
  {
    "type": "_unannotated_type",
    "named": true,
    "subtypes": [
      {
        "type": "_simple_type",
        "named": true
      },
      {
        "type": "array_type",
        "named": true
      }
    ]
  },
  {
    "type": "declaration",
    "named": true,
    "subtypes": [
      {
        "type": "annotation_type_declaration",
        "named": true
      },
      {
        "type": "class_declaration",
        "named": true
      },
      {
        "type": "enum_declaration",
        "named": true
      },
      {
        "type": "import_declaration",
        "named": true
      },
      {
        "type": "interface_declaration",
        "named": true
      },
      {
        "type": "module_declaration",
        "named": true
      },
      {
        "type": "package_declaration",
        "named": true
      },
      {
        "type": "record_declaration",
        "named": true
      }
    ]
  },
  {
    "type": "expression",
    "named": true,
    "subtypes": [
      {
        "type": "assignment_expression",
        "named": true
      },
      {
        "type": "binary_expression",
        "named": true
      },
      {
        "type": "cast_expression",
        "named": true
      },
      {
        "type": "instanceof_expression",
        "named": true
      },
      {
        "type": "lambda_expression",
        "named": true
      },
      {
        "type": "primary_expression",
        "named": true
      },
      {
        "type": "switch_expression",
        "named": true
      },
      {
        "type": "ternary_expression",
        "named": true
      },
      {
        "type": "unary_expression",
        "named": true
      },
      {
        "type": "update_expression",
        "named": true
      }
    ]
  },
  {
    "type": "module_directive",
    "named": true,
    "subtypes": [
      {
        "type": "exports_module_directive",
        "named": true
      },
      {
        "type": "opens_module_directive",
        "named": true
      },
      {
        "type": "provides_module_directive",
        "named": true
      },
      {
        "type": "requires_module_directive",
        "named": true
      },
      {
        "type": "uses_module_directive",
        "named": true
      }
    ]
  },
  {
    "type": "primary_expression",
    "named": true,
    "subtypes": [
      {
        "type": "_literal",
        "named": true
      },
      {
        "type": "array_access",
        "named": true
      },
      {
        "type": "array_creation_expression",
        "named": true
      },
      {
        "type": "class_literal",
        "named": true
      },
      {
        "type": "field_access",
        "named": true
      },
      {
        "type": "identifier",
        "named": true
      },
      {
        "type": "method_invocation",
        "named": true
      },
      {
        "type": "method_reference",
        "named": true
      },
      {
        "type": "object_creation_expression",
        "named": true
      },
      {
        "type": "parenthesized_expression",
        "named": true
      },
      {
        "type": "template_expression",
        "named": true
      },
      {
        "type": "this",
        "named": true
      }
    ]
  },
  {
    "type": "statement",
    "named": true,
    "subtypes": [
      {
        "type": ";",
        "named": false
      },
      {
        "type": "assert_statement",
        "named": true
      },
      {
        "type": "block",
        "named": true
      },
      {
        "type": "break_statement",
        "named": true
      },
      {
        "type": "continue_statement",
        "named": true
      },
      {
        "type": "declaration",
        "named": true
      },
      {
        "type": "do_statement",
        "named": true
      },
      {
        "type": "enhanced_for_statement",
        "named": true
      },
      {
        "type": "expression_statement",
        "named": true
      },
      {
        "type": "for_statement",
        "named": true
      },
      {
        "type": "if_statement",
        "named": true
      },
      {
        "type": "labeled_statement",
        "named": true
      },
      {
        "type": "local_variable_declaration",
        "named": true
      },
      {
        "type": "return_statement",
        "named": true
      },
      {
        "type": "switch_expression",
        "named": true
      },
      {
        "type": "synchronized_statement",
        "named": true
      },
      {
        "type": "throw_statement",
        "named": true
      },
      {
        "type": "try_statement",
        "named": true
      },
      {
        "type": "try_with_resources_statement",
        "named": true
      },
      {
        "type": "while_statement",
        "named": true
      },
      {
        "type": "yield_statement",
        "named": true
      }
    ]
  },
  {
    "type": "annotated_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_unannotated_type",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "annotation",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "annotation_argument_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "annotation_argument_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "element_value_array_initializer",
          "named": true
        },
        {
          "type": "element_value_pair",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "annotation_type_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation_type_declaration",
          "named": true
        },
        {
          "type": "annotation_type_element_declaration",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "constant_declaration",
          "named": true
        },
        {
          "type": "enum_declaration",
          "named": true
        },
        {
          "type": "interface_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "annotation_type_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "annotation_type_body",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "annotation_type_element_declaration",
    "named": true,
    "fields": {
      "dimensions": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "dimensions",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_unannotated_type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "annotation",
            "named": true
          },
          {
            "type": "element_value_array_initializer",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "marker_annotation",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "argument_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_access",
    "named": true,
    "fields": {
      "array": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "primary_expression",
            "named": true
          }
        ]
      },
      "index": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "array_creation_expression",
    "named": true,
    "fields": {
      "dimensions": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "dimensions",
            "named": true
          },
          {
            "type": "dimensions_expr",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_simple_type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "array_initializer",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_initializer",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "array_initializer",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "array_type",
    "named": true,
    "fields": {
      "dimensions": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "dimensions",
            "named": true
          }
        ]
      },
      "element": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_unannotated_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "assert_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "assignment_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "array_access",
            "named": true
          },
          {
            "type": "field_access",
            "named": true
          },
          {
            "type": "identifier",
            "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
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "asterisk",
    "named": true,
    "fields": {}
  },
  {
    "type": "binary_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "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
          },
          {
            "type": ">>",
            "named": false
          },
          {
            "type": ">>>",
            "named": false
          },
          {
            "type": "^",
            "named": false
          },
          {
            "type": "|",
            "named": false
          },
          {
            "type": "||",
            "named": false
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "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": false,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "cast_expression",
    "named": true,
    "fields": {
      "type": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "_type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "catch_clause",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "catch_formal_parameter",
          "named": true
        }
      ]
    }
  },
  {
    "type": "catch_formal_parameter",
    "named": true,
    "fields": {
      "dimensions": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "dimensions",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "underscore_pattern",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "catch_type",
          "named": true
        },
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "catch_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_unannotated_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation_type_declaration",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "compact_constructor_declaration",
          "named": true
        },
        {
          "type": "constructor_declaration",
          "named": true
        },
        {
          "type": "enum_declaration",
          "named": true
        },
        {
          "type": "field_declaration",
          "named": true
        },
        {
          "type": "interface_declaration",
          "named": true
        },
        {
          "type": "method_declaration",
          "named": true
        },
        {
          "type": "record_declaration",
          "named": true
        },
        {
          "type": "static_initializer",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "class_body",
            "named": true
          }
        ]
      },
      "interfaces": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "super_interfaces",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "permits": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "permits",
            "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": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "class_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "_unannotated_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "compact_constructor_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constant_declaration",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "variable_declarator",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_unannotated_type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "explicit_constructor_invocation",
          "named": true
        },
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "constructor_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "constructor_body",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      },
      "type_parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        },
        {
          "type": "throws",
          "named": true
        }
      ]
    }
  },
  {
    "type": "continue_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "dimensions",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "dimensions_expr",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "marker_annotation",
          "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": "element_value_array_initializer",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "element_value_array_initializer",
          "named": true
        },
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "element_value_pair",
    "named": true,
    "fields": {
      "key": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "annotation",
            "named": true
          },
          {
            "type": "element_value_array_initializer",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "marker_annotation",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "enhanced_for_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "dimensions": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "dimensions",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "underscore_pattern",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_unannotated_type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "enum_body_declarations",
          "named": true
        },
        {
          "type": "enum_constant",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_body_declarations",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation_type_declaration",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "compact_constructor_declaration",
          "named": true
        },
        {
          "type": "constructor_declaration",
          "named": true
        },
        {
          "type": "enum_declaration",
          "named": true
        },
        {
          "type": "field_declaration",
          "named": true
        },
        {
          "type": "interface_declaration",
          "named": true
        },
        {
          "type": "method_declaration",
          "named": true
        },
        {
          "type": "record_declaration",
          "named": true
        },
        {
          "type": "static_initializer",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_constant",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "argument_list",
            "named": true
          }
        ]
      },
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "class_body",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "enum_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "enum_body",
            "named": true
          }
        ]
      },
      "interfaces": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "super_interfaces",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "explicit_constructor_invocation",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "argument_list",
            "named": true
          }
        ]
      },
      "constructor": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "super",
            "named": true
          },
          {
            "type": "this",
            "named": true
          }
        ]
      },
      "object": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "primary_expression",
            "named": true
          }
        ]
      },
      "type_arguments": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_arguments",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "exports_module_directive",
    "named": true,
    "fields": {
      "modules": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      },
      "package": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "expression_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "extends_interfaces",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "type_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "field_access",
    "named": true,
    "fields": {
      "field": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "this",
            "named": true
          }
        ]
      },
      "object": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "primary_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "super",
          "named": true
        }
      ]
    }
  },
  {
    "type": "field_declaration",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "variable_declarator",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_unannotated_type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "finally_clause",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "block",
          "named": true
        }
      ]
    }
  },
  {
    "type": "floating_point_type",
    "named": true,
    "fields": {}
  },
  {
    "type": "for_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "init": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          },
          {
            "type": "local_variable_declaration",
            "named": true
          }
        ]
      },
      "update": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "formal_parameter",
    "named": true,
    "fields": {
      "dimensions": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "dimensions",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "underscore_pattern",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_unannotated_type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "formal_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "formal_parameter",
          "named": true
        },
        {
          "type": "receiver_parameter",
          "named": true
        },
        {
          "type": "spread_parameter",
          "named": true
        }
      ]
    }
  },
  {
    "type": "generic_type",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "scoped_type_identifier",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "guard",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "if_statement",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "parenthesized_expression",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "statement",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "import_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "asterisk",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "scoped_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "inferred_parameters",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "instanceof_expression",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "pattern": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "record_pattern",
            "named": true
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_type",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "integral_type",
    "named": true,
    "fields": {}
  },
  {
    "type": "interface_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation_type_declaration",
          "named": true
        },
        {
          "type": "class_declaration",
          "named": true
        },
        {
          "type": "constant_declaration",
          "named": true
        },
        {
          "type": "enum_declaration",
          "named": true
        },
        {
          "type": "interface_declaration",
          "named": true
        },
        {
          "type": "method_declaration",
          "named": true
        },
        {
          "type": "record_declaration",
          "named": true
        }
      ]
    }
  },
  {
    "type": "interface_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "interface_body",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "permits": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "permits",
            "named": true
          }
        ]
      },
      "type_parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "extends_interfaces",
          "named": true
        },
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "labeled_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "lambda_expression",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          },
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "inferred_parameters",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "local_variable_declaration",
    "named": true,
    "fields": {
      "declarator": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "variable_declarator",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_unannotated_type",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "marker_annotation",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "method_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "dimensions": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "dimensions",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_unannotated_type",
            "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": "marker_annotation",
          "named": true
        },
        {
          "type": "modifiers",
          "named": true
        },
        {
          "type": "throws",
          "named": true
        }
      ]
    }
  },
  {
    "type": "method_invocation",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "argument_list",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "object": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "primary_expression",
            "named": true
          },
          {
            "type": "super",
            "named": true
          }
        ]
      },
      "type_arguments": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_arguments",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "super",
          "named": true
        }
      ]
    }
  },
  {
    "type": "method_reference",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_type",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        },
        {
          "type": "super",
          "named": true
        },
        {
          "type": "type_arguments",
          "named": true
        }
      ]
    }
  },
  {
    "type": "modifiers",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "module_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "module_directive",
          "named": true
        }
      ]
    }
  },
  {
    "type": "module_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "module_body",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "multiline_string_fragment",
    "named": true,
    "fields": {}
  },
  {
    "type": "object_creation_expression",
    "named": true,
    "fields": {
      "arguments": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "argument_list",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "_simple_type",
            "named": true
          }
        ]
      },
      "type_arguments": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_arguments",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "class_body",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        },
        {
          "type": "primary_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "opens_module_directive",
    "named": true,
    "fields": {
      "modules": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      },
      "package": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "package_declaration",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        },
        {
          "type": "scoped_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "parenthesized_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "type_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "permits",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "type_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "program",
    "named": true,
    "root": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "method_declaration",
          "named": true
        },
        {
          "type": "statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "provides_module_directive",
    "named": true,
    "fields": {
      "provided": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      },
      "provider": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "scoped_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "receiver_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_unannotated_type",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        },
        {
          "type": "this",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_declaration",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "class_body",
            "named": true
          }
        ]
      },
      "interfaces": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "super_interfaces",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          }
        ]
      },
      "parameters": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "formal_parameters",
            "named": true
          }
        ]
      },
      "type_parameters": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "type_parameters",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "generic_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "record_pattern_body",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_pattern_body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "record_pattern",
          "named": true
        },
        {
          "type": "record_pattern_component",
          "named": true
        }
      ]
    }
  },
  {
    "type": "record_pattern_component",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_unannotated_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "underscore_pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "requires_modifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "requires_module_directive",
    "named": true,
    "fields": {
      "modifiers": {
        "multiple": true,
        "required": false,
        "types": [
          {
            "type": "requires_modifier",
            "named": true
          }
        ]
      },
      "module": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "resource",
    "named": true,
    "fields": {
      "dimensions": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "dimensions",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "underscore_pattern",
            "named": true
          }
        ]
      },
      "type": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "_unannotated_type",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "field_access",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "modifiers",
          "named": true
        }
      ]
    }
  },
  {
    "type": "resource_specification",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "resource",
          "named": true
        }
      ]
    }
  },
  {
    "type": "return_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "expression",
          "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": "scoped_type_identifier",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "generic_type",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        },
        {
          "type": "scoped_type_identifier",
          "named": true
        },
        {
          "type": "type_identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "spread_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_unannotated_type",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        },
        {
          "type": "modifiers",
          "named": true
        },
        {
          "type": "variable_declarator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "static_initializer",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "block",
          "named": true
        }
      ]
    }
  },
  {
    "type": "string_interpolation",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "string_literal",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "multiline_string_fragment",
          "named": true
        },
        {
          "type": "string_fragment",
          "named": true
        },
        {
          "type": "string_interpolation",
          "named": true
        }
      ]
    }
  },
  {
    "type": "super_interfaces",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "type_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "superclass",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "switch_block_statement_group",
          "named": true
        },
        {
          "type": "switch_rule",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_block_statement_group",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "statement",
          "named": true
        },
        {
          "type": "switch_label",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_expression",
    "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_label",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "expression",
          "named": true
        },
        {
          "type": "guard",
          "named": true
        },
        {
          "type": "pattern",
          "named": true
        }
      ]
    }
  },
  {
    "type": "switch_rule",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "block",
          "named": true
        },
        {
          "type": "expression_statement",
          "named": true
        },
        {
          "type": "switch_label",
          "named": true
        },
        {
          "type": "throw_statement",
          "named": true
        }
      ]
    }
  },
  {
    "type": "synchronized_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "parenthesized_expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "template_expression",
    "named": true,
    "fields": {
      "template_argument": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "string_literal",
            "named": true
          }
        ]
      },
      "template_processor": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "primary_expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "ternary_expression",
    "named": true,
    "fields": {
      "alternative": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "condition": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "consequence": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "throw_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "throws",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "try_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "catch_clause",
          "named": true
        },
        {
          "type": "finally_clause",
          "named": true
        }
      ]
    }
  },
  {
    "type": "try_with_resources_statement",
    "named": true,
    "fields": {
      "body": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "resources": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "resource_specification",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "catch_clause",
          "named": true
        },
        {
          "type": "finally_clause",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_type",
          "named": true
        },
        {
          "type": "wildcard",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_bound",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_type",
          "named": true
        }
      ]
    }
  },
  {
    "type": "type_parameter",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "marker_annotation",
          "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_pattern",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "_unannotated_type",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unary_expression",
    "named": true,
    "fields": {
      "operand": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "expression",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "!",
            "named": false
          },
          {
            "type": "+",
            "named": false
          },
          {
            "type": "-",
            "named": false
          },
          {
            "type": "~",
            "named": false
          }
        ]
      }
    }
  },
  {
    "type": "update_expression",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "uses_module_directive",
    "named": true,
    "fields": {
      "type": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "scoped_identifier",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "variable_declarator",
    "named": true,
    "fields": {
      "dimensions": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "dimensions",
            "named": true
          }
        ]
      },
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "underscore_pattern",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "array_initializer",
            "named": true
          },
          {
            "type": "expression",
            "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": "wildcard",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "_type",
          "named": true
        },
        {
          "type": "annotation",
          "named": true
        },
        {
          "type": "marker_annotation",
          "named": true
        },
        {
          "type": "super",
          "named": true
        }
      ]
    }
  },
  {
    "type": "yield_statement",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "expression",
          "named": true
        }
      ]
    }
  },
  {
    "type": "!",
    "named": false
  },
  {
    "type": "!=",
    "named": false
  },
  {
    "type": "\"",
    "named": false
  },
  {
    "type": "\"\"\"",
    "named": false
  },
  {
    "type": "%",
    "named": false
  },
  {
    "type": "%=",
    "named": false
  },
  {
    "type": "&",
    "named": false
  },
  {
    "type": "&&",
    "named": false
  },
  {
    "type": "&=",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": "*",
    "named": false
  },
  {
    "type": "*=",
    "named": false
  },
  {
    "type": "+",
    "named": false
  },
  {
    "type": "++",
    "named": false
  },
  {
    "type": "+=",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "-",
    "named": false
  },
  {
    "type": "--",
    "named": false
  },
  {
    "type": "-=",
    "named": false
  },
  {
    "type": "->",
    "named": false
  },
  {
    "type": ".",
    "named": false
  },
  {
    "type": "...",
    "named": false
  },
  {
    "type": "/",
    "named": false
  },
  {
    "type": "/=",
    "named": false
  },
  {
    "type": ":",
    "named": false
  },
  {
    "type": "::",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "<",
    "named": false
  },
  {
    "type": "<<",
    "named": false
  },
  {
    "type": "<<=",
    "named": false
  },
  {
    "type": "<=",
    "named": false
  },
  {
    "type": "=",
    "named": false
  },
  {
    "type": "==",
    "named": false
  },
  {
    "type": ">",
    "named": false
  },
  {
    "type": ">=",
    "named": false
  },
  {
    "type": ">>",
    "named": false
  },
  {
    "type": ">>=",
    "named": false
  },
  {
    "type": ">>>",
    "named": false
  },
  {
    "type": ">>>=",
    "named": false
  },
  {
    "type": "?",
    "named": false
  },
  {
    "type": "@",
    "named": false
  },
  {
    "type": "@interface",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "\\{",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "^",
    "named": false
  },
  {
    "type": "^=",
    "named": false
  },
  {
    "type": "abstract",
    "named": false
  },
  {
    "type": "assert",
    "named": false
  },
  {
    "type": "binary_integer_literal",
    "named": true
  },
  {
    "type": "block_comment",
    "named": true
  },
  {
    "type": "boolean_type",
    "named": true
  },
  {
    "type": "break",
    "named": false
  },
  {
    "type": "byte",
    "named": false
  },
  {
    "type": "case",
    "named": false
  },
  {
    "type": "catch",
    "named": false
  },
  {
    "type": "char",
    "named": false
  },
  {
    "type": "character_literal",
    "named": true
  },
  {
    "type": "class",
    "named": false
  },
  {
    "type": "continue",
    "named": false
  },
  {
    "type": "decimal_floating_point_literal",
    "named": true
  },
  {
    "type": "decimal_integer_literal",
    "named": true
  },
  {
    "type": "default",
    "named": false
  },
  {
    "type": "do",
    "named": false
  },
  {
    "type": "double",
    "named": false
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "enum",
    "named": false
  },
  {
    "type": "escape_sequence",
    "named": true
  },
  {
    "type": "exports",
    "named": false
  },
  {
    "type": "extends",
    "named": false
  },
  {
    "type": "false",
    "named": true
  },
  {
    "type": "final",
    "named": false
  },
  {
    "type": "finally",
    "named": false
  },
  {
    "type": "float",
    "named": false
  },
  {
    "type": "for",
    "named": false
  },
  {
    "type": "hex_floating_point_literal",
    "named": true
  },
  {
    "type": "hex_integer_literal",
    "named": true
  },
  {
    "type": "identifier",
    "named": true
  },
  {
    "type": "if",
    "named": false
  },
  {
    "type": "implements",
    "named": false
  },
  {
    "type": "import",
    "named": false
  },
  {
    "type": "instanceof",
    "named": false
  },
  {
    "type": "int",
    "named": false
  },
  {
    "type": "interface",
    "named": false
  },
  {
    "type": "line_comment",
    "named": true
  },
  {
    "type": "long",
    "named": false
  },
  {
    "type": "module",
    "named": false
  },
  {
    "type": "native",
    "named": false
  },
  {
    "type": "new",
    "named": false
  },
  {
    "type": "non-sealed",
    "named": false
  },
  {
    "type": "null_literal",
    "named": true
  },
  {
    "type": "octal_integer_literal",
    "named": true
  },
  {
    "type": "open",
    "named": false
  },
  {
    "type": "opens",
    "named": false
  },
  {
    "type": "package",
    "named": false
  },
  {
    "type": "permits",
    "named": false
  },
  {
    "type": "private",
    "named": false
  },
  {
    "type": "protected",
    "named": false
  },
  {
    "type": "provides",
    "named": false
  },
  {
    "type": "public",
    "named": false
  },
  {
    "type": "record",
    "named": false
  },
  {
    "type": "requires",
    "named": false
  },
  {
    "type": "return",
    "named": false
  },
  {
    "type": "sealed",
    "named": false
  },
  {
    "type": "short",
    "named": false
  },
  {
    "type": "static",
    "named": false
  },
  {
    "type": "strictfp",
    "named": false
  },
  {
    "type": "string_fragment",
    "named": true
  },
  {
    "type": "super",
    "named": true
  },
  {
    "type": "switch",
    "named": false
  },
  {
    "type": "synchronized",
    "named": false
  },
  {
    "type": "this",
    "named": true
  },
  {
    "type": "throw",
    "named": false
  },
  {
    "type": "throws",
    "named": false
  },
  {
    "type": "to",
    "named": false
  },
  {
    "type": "transient",
    "named": false
  },
  {
    "type": "transitive",
    "named": false
  },
  {
    "type": "true",
    "named": true
  },
  {
    "type": "try",
    "named": false
  },
  {
    "type": "type_identifier",
    "named": true
  },
  {
    "type": "underscore_pattern",
    "named": true
  },
  {
    "type": "uses",
    "named": false
  },
  {
    "type": "void_type",
    "named": true
  },
  {
    "type": "volatile",
    "named": false
  },
  {
    "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
  }
]