pub const NODE_TYPES: &str = "[\n  {\n    \"type\": \"abort_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"accept_alternative\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"accept_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"entry_direct_name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"entry_identifier\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"entry_index\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"parameter_profile\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"formal_part\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"handled_sequence_of_statements\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"access_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"formal_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"result_profile\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"access_to_object_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"general_access_modifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"access_to_subprogram_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"formal_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"result_profile\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"actual_parameter_part\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"case_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declare_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"parameter_association\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quantified_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"allocator\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subpool_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"array_component_association\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"discrete_choice_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"iterated_element_association\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"array_delta_aggregate\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"array_component_association\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"array_type_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"component_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_subtype_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_g\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"aspect_association\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"global_aspect_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"aspect_mark_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_association\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"aspect_specification\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_mark_list\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"assignment_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"variable_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"asynchronous_select\",\n    \"named\": true,\n    \"fields\": {\n      \"abortable_part\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"abort_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"accept_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assignment_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"asynchronous_select\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"conditional_entry_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"delay_relative_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"delay_until_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"exit_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"extended_return_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"goto_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"loop_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"null_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"pragma_g\",\n            \"named\": true\n          },\n          {\n            \"type\": \"procedure_call_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raise_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"requeue_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selective_accept\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_return_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"timed_entry_call\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"triggering_alternative\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"at_clause\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"attribute_definition_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"local_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"attribute_designator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"binary_adding_operator\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"block_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"handled_sequence_of_statements\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"non_empty_declarative_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"body_stub\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"package_body_stub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"protected_body_stub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_body_stub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"task_body_stub\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"case_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"case_expression_alternative\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"case_expression_alternative\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"discrete_choice_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"case_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"case_statement_alternative\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"case_statement_alternative\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discrete_choice_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"choice_parameter_specification\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"chunk_specification\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_adding_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_adding_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"compilation\",\n    \"named\": true,\n    \"root\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"compilation_unit\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"compilation_unit\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"at_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_definition_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"body_stub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"entry_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enumeration_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression_function_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"full_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_package_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_subprogram_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"incomplete_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_procedure_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"private_extension_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"private_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"protected_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subtype_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subunit\",\n          \"named\": true\n        },\n        {\n          \"type\": \"task_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"use_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"with_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"component_choice_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"component_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"first_bit\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_adding_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"term\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_adding_operator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"last_bit\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"binary_adding_operator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"term\",\n            \"named\": true\n          },\n          {\n            \"type\": \"unary_adding_operator\",\n            \"named\": true\n          }\n        ]\n      },\n      \"local_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"position\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"component_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"component_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"component_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"component_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"at_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_definition_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"component_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enumeration_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variant_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"conditional_entry_call\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"entry_call_alternative\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"decimal_fixed_point_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"real_range_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"declare_expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"delay_alternative\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"delay_relative_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"delay_until_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"delta_constraint\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_adding_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_adding_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"derived_type_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_extension_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"digits_constraint\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_adding_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_adding_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"discrete_choice\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_g\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"discrete_choice_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"discrete_choice\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"discriminant_association\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"discriminant_constraint\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"case_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declare_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_association\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quantified_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"discriminant_specification\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"access_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"discriminant_specification_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"discriminant_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"elsif_expression_item\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"elsif_statement_item\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"statements\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"abort_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"accept_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assignment_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"asynchronous_select\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"conditional_entry_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"delay_relative_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"delay_until_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"exit_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"extended_return_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"goto_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"loop_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"null_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"pragma_g\",\n            \"named\": true\n          },\n          {\n            \"type\": \"procedure_call_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raise_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"requeue_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selective_accept\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_return_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"timed_entry_call\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"entry_barrier\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"entry_body\",\n    \"named\": true,\n    \"fields\": {\n      \"parameter_profile\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"formal_part\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"entry_barrier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"entry_index_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"handled_sequence_of_statements\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"non_empty_declarative_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"entry_call_alternative\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"entry_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"entry_name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"parameter_profile\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"formal_part\",\n            \"named\": true\n          }\n        ]\n      },\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"overriding_indicator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_g\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"entry_index_specification\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_g\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"enumeration_aggregate\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"named_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"positional_array_aggregate\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"enumeration_representation_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"local_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"enumeration_aggregate\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"enumeration_type_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"exception_choice\",\n    \"named\": true,\n    \"fields\": {\n      \"exception_name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"exception_choice_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"exception_choice\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"exception_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"exception_handler\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"choice_parameter_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_choice_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"exception_renaming_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"exception_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"exit_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"loop_name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"expression\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_adding_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"relation_membership\",\n          \"named\": true\n        },\n        {\n          \"type\": \"relational_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_adding_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"expression_function_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"array_delta_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declare_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extension_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"named_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"overriding_indicator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"positional_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quantified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_delta_aggregate\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"extended_return_object_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"access_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"extended_return_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"extended_return_object_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"handled_sequence_of_statements\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"extension_aggregate\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_component_association_list\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"factor_abs\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"allocator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"array_delta_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declare_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extension_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"named_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"numeric_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"positional_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primary_null\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quantified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_delta_aggregate\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"factor_not\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"allocator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"array_delta_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declare_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extension_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"named_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"numeric_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"positional_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primary_null\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quantified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_delta_aggregate\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"factor_power\",\n    \"named\": true,\n    \"fields\": {\n      \"left\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"(\",\n            \"named\": false\n          },\n          {\n            \"type\": \")\",\n            \"named\": false\n          },\n          {\n            \"type\": \"allocator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"array_delta_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"declare_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"extension_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"named_array_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"null_array_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"numeric_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"positional_array_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primary_null\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quantified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_delta_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"right\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"(\",\n            \"named\": false\n          },\n          {\n            \"type\": \")\",\n            \"named\": false\n          },\n          {\n            \"type\": \"allocator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"array_delta_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"declare_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"extension_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"named_array_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"null_array_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"numeric_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"positional_array_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"primary_null\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"quantified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"record_delta_aggregate\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"floating_point_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"real_range_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_abstract_subprogram_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_default\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_access_type_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"access_to_object_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"access_to_subprogram_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_array_type_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"array_type_definition\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_complete_type_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"default_subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_access_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_array_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_decimal_fixed_point_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_derived_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_discrete_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_floating_point_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_interface_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_modular_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_ordinary_fixed_point_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_private_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_signed_integer_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"known_discriminant_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unknown_discriminant_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_concrete_subprogram_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_default\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_decimal_fixed_point_definition\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"formal_derived_type_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_discrete_type_definition\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"formal_floating_point_definition\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"formal_incomplete_type_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"default_subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"known_discriminant_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unknown_discriminant_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_interface_type_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"interface_type_definition\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_modular_type_definition\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"formal_object_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \",\",\n            \"named\": false\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"non_empty_mode\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_ordinary_fixed_point_definition\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"formal_package_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"generic_package_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_part\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"parameter_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"formal_private_type_definition\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"formal_signed_integer_type_definition\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"formal_subprogram_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"formal_abstract_subprogram_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_concrete_subprogram_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"full_type_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"access_to_object_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"access_to_subprogram_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"array_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"decimal_fixed_point_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"derived_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enumeration_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"floating_point_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"interface_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"known_discriminant_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"modular_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"ordinary_fixed_point_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"protected_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"signed_integer_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"task_type_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"function_call\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"actual_parameter_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"function_specification\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"formal_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"result_profile\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"general_access_modifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"generic_formal_part\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"formal_complete_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_incomplete_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_object_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_package_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"formal_subprogram_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"use_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"generic_instantiation\",\n    \"named\": true,\n    \"fields\": {\n      \"generic_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"overriding_indicator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"generic_package_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"generic_formal_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"generic_renaming_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"defining_program_unit_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"generic_function_name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"generic_package_name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"generic_procedure_name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"generic_subprogram_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_formal_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"global_aspect_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"global_aspect_element\",\n          \"named\": true\n        },\n        {\n          \"type\": \"global_mode\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"global_aspect_element\",\n    \"named\": true,\n    \"fields\": {\n      \"global_set\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \",\",\n            \"named\": false\n          },\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"global_mode\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"global_mode\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"non_empty_mode\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"gnatprep_declarative_if_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"at_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_definition_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"body_stub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enumeration_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression_function_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"full_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_package_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_subprogram_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_declarative_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"incomplete_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_procedure_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"private_extension_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"private_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"protected_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subtype_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"task_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"use_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"gnatprep_if_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"goto_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"label_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"guard\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"handled_sequence_of_statements\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_handler\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"if_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"elsif_expression_item\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"if_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      },\n      \"else_statements\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"abort_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"accept_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assignment_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"asynchronous_select\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"conditional_entry_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"delay_relative_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"delay_until_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"exit_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"extended_return_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"goto_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"loop_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"null_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"pragma_g\",\n            \"named\": true\n          },\n          {\n            \"type\": \"procedure_call_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raise_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"requeue_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selective_accept\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_return_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"timed_entry_call\",\n            \"named\": true\n          }\n        ]\n      },\n      \"statements\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"abort_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"accept_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assignment_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"asynchronous_select\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"conditional_entry_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"delay_relative_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"delay_until_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"exit_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"extended_return_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"goto_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"loop_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"null_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"pragma_g\",\n            \"named\": true\n          },\n          {\n            \"type\": \"procedure_call_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raise_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"requeue_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selective_accept\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_return_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"timed_entry_call\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"elsif_statement_item\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"incomplete_type_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"known_discriminant_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unknown_discriminant_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"index_constraint\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_g\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"index_subtype_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"interface_type_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"iterated_element_association\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"iterator_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_parameter_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"iteration_scheme\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"iterator_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_parameter_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"iterator_filter\",\n    \"named\": true,\n    \"fields\": {\n      \"condition\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"iterator_specification\",\n    \"named\": true,\n    \"fields\": {\n      \"iterator_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"access_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"iterator_filter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"known_discriminant_part\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"discriminant_specification_list\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"label\",\n    \"named\": true,\n    \"fields\": {\n      \"statement_identifier\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"loop_label\",\n    \"named\": true,\n    \"fields\": {\n      \"statement_identifier\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"loop_parameter_specification\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"iterator_filter\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_g\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"loop_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"statements\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"abort_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"accept_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"assignment_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"asynchronous_select\",\n            \"named\": true\n          },\n          {\n            \"type\": \"block_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"case_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"conditional_entry_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"delay_relative_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"delay_until_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"exit_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"extended_return_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"goto_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"if_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"label\",\n            \"named\": true\n          },\n          {\n            \"type\": \"loop_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"null_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"pragma_g\",\n            \"named\": true\n          },\n          {\n            \"type\": \"procedure_call_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"raise_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"requeue_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selective_accept\",\n            \"named\": true\n          },\n          {\n            \"type\": \"simple_return_statement\",\n            \"named\": true\n          },\n          {\n            \"type\": \"timed_entry_call\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"iteration_scheme\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_label\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"membership_choice_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_adding_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_adding_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"mod_clause\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"modular_type_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"multiplying_operator\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"named_array_aggregate\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"array_component_association\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"non_empty_declarative_part\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"at_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_definition_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"body_stub\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enumeration_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression_function_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"full_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_package_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_subprogram_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_declarative_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"incomplete_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_procedure_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"private_extension_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"private_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"protected_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subtype_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"task_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"use_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"non_empty_mode\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"null_array_aggregate\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"null_exclusion\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"null_procedure_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"overriding_indicator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"null_statement\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"number_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"object_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \",\",\n            \"named\": false\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      },\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"array_type_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"single_protected_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"single_task_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"object_renaming_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"object_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"access_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"ordinary_fixed_point_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"real_range_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"overriding_indicator\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"package_body\",\n    \"named\": true,\n    \"fields\": {\n      \"endname\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"handled_sequence_of_statements\",\n          \"named\": true\n        },\n        {\n          \"type\": \"non_empty_declarative_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"package_body_stub\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"package_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"endname\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"at_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_definition_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enumeration_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exception_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression_function_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"full_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_instantiation\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_package_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"generic_subprogram_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"incomplete_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_procedure_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"number_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"object_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"package_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"private_extension_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"private_type_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_renaming_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subtype_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"use_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"package_renaming_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"package_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parameter_association\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"component_choice_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"parameter_specification\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"access_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"non_empty_mode\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"positional_array_aggregate\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"pragma_argument_association\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"pragma_g\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"case_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declare_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_argument_association\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quantified_expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"primary_null\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"private_extension_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"known_discriminant_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unknown_discriminant_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"private_type_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"known_discriminant_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unknown_discriminant_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"procedure_call_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"actual_parameter_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"procedure_specification\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"formal_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"protected_body\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"at_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_definition_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"entry_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enumeration_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression_function_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_procedure_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"protected_body_stub\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"protected_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"at_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_definition_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"component_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"entry_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enumeration_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_declaration\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"protected_type_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"known_discriminant_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"protected_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"qualified_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"array_delta_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declare_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extension_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"named_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"positional_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quantified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_delta_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"quantified_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"predicate\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"expression\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"iterator_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_parameter_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quantifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"quantifier\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"raise_expression\",\n    \"named\": true,\n    \"fields\": {\n      \"exception_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"binary_adding_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_adding_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"raise_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"range_attribute_designator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"range_constraint\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"range_g\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"range_g\",\n    \"named\": true,\n    \"fields\": {\n      \"prefix\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"range_attribute_reference\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"range_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"binary_adding_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_adding_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"real_range_specification\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_adding_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_adding_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_aggregate\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"record_component_association_list\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_component_association_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"component_choice_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"component_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_delta_aggregate\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_component_association_list\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_extension_part\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"record_definition\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_representation_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"end_local_name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"local_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"component_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"mod_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"record_type_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"record_definition\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"reduction_attribute_designator\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"reduction_specification\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"relation_membership\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_adding_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"membership_choice_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_adding_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"relational_operator\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"requeue_statement\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"result_profile\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"access_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"select_alternative\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"accept_alternative\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_alternative\",\n          \"named\": true\n        },\n        {\n          \"type\": \"terminate_alternative\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"selected_component\",\n    \"named\": true,\n    \"fields\": {\n      \"prefix\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      },\n      \"selector_name\": {\n        \"multiple\": false,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"selective_accept\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"guard\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"select_alternative\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"signed_integer_type_definition\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"binary_adding_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"term\",\n          \"named\": true\n        },\n        {\n          \"type\": \"unary_adding_operator\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"simple_return_statement\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": false,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"single_protected_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"protected_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"single_task_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"task_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"slice\",\n    \"named\": true,\n    \"fields\": {\n      \"prefix\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"range_g\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"subpool_specification\",\n    \"named\": true,\n    \"fields\": {\n      \"subpool_handle_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"subprogram_body\",\n    \"named\": true,\n    \"fields\": {\n      \"endname\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"handled_sequence_of_statements\",\n          \"named\": true\n        },\n        {\n          \"type\": \"non_empty_declarative_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"overriding_indicator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"subprogram_body_stub\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"overriding_indicator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"subprogram_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"is_abstract\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"abstract\",\n            \"named\": false\n          },\n          {\n            \"type\": \"is\",\n            \"named\": false\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"overriding_indicator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"subprogram_default\",\n    \"named\": true,\n    \"fields\": {\n      \"default_name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    }\n  },\n  {\n    \"type\": \"subprogram_renaming_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"callable_entity_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"overriding_indicator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_specification\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"subtype_declaration\",\n    \"named\": true,\n    \"fields\": {\n      \"subtype_mark\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delta_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"digits_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discriminant_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"index_constraint\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_exclusion\",\n          \"named\": true\n        },\n        {\n          \"type\": \"range_constraint\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"subunit\",\n    \"named\": true,\n    \"fields\": {\n      \"parent_unit_name\": {\n        \"multiple\": true,\n        \"required\": true,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": false,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"package_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"protected_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"subprogram_body\",\n          \"named\": true\n        },\n        {\n          \"type\": \"task_body\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"task_body\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"handled_sequence_of_statements\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"non_empty_declarative_part\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"task_body_stub\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"task_definition\",\n    \"named\": true,\n    \"fields\": {\n      \"endname\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"at_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_definition_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"entry_declaration\",\n          \"named\": true\n        },\n        {\n          \"type\": \"enumeration_representation_clause\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_representation_clause\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"task_type_declaration\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"aspect_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"known_discriminant_part\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"task_definition\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"term\",\n    \"named\": true,\n    \"fields\": {\n      \"name\": {\n        \"multiple\": true,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"character_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"function_call\",\n            \"named\": true\n          },\n          {\n            \"type\": \"gnatprep_identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"identifier\",\n            \"named\": true\n          },\n          {\n            \"type\": \"qualified_expression\",\n            \"named\": true\n          },\n          {\n            \"type\": \"reduction_attribute_designator\",\n            \"named\": true\n          },\n          {\n            \"type\": \"selected_component\",\n            \"named\": true\n          },\n          {\n            \"type\": \"slice\",\n            \"named\": true\n          },\n          {\n            \"type\": \"string_literal\",\n            \"named\": true\n          },\n          {\n            \"type\": \"target_name\",\n            \"named\": true\n          },\n          {\n            \"type\": \"tick\",\n            \"named\": true\n          },\n          {\n            \"type\": \"value_sequence\",\n            \"named\": true\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": false,\n      \"types\": [\n        {\n          \"type\": \"allocator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"array_delta_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"declare_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extension_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"factor_abs\",\n          \"named\": true\n        },\n        {\n          \"type\": \"factor_not\",\n          \"named\": true\n        },\n        {\n          \"type\": \"factor_power\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"multiplying_operator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"named_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"numeric_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"positional_array_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"primary_null\",\n          \"named\": true\n        },\n        {\n          \"type\": \"quantified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_aggregate\",\n          \"named\": true\n        },\n        {\n          \"type\": \"record_delta_aggregate\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"terminate_alternative\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"timed_entry_call\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"delay_alternative\",\n          \"named\": true\n        },\n        {\n          \"type\": \"entry_call_alternative\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"triggering_alternative\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"abort_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"accept_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"assignment_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"asynchronous_select\",\n          \"named\": true\n        },\n        {\n          \"type\": \"block_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"case_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"conditional_entry_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_relative_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"delay_until_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"exit_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"extended_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"goto_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"if_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"label\",\n          \"named\": true\n        },\n        {\n          \"type\": \"loop_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"null_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"pragma_g\",\n          \"named\": true\n        },\n        {\n          \"type\": \"procedure_call_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"raise_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"requeue_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selective_accept\",\n          \"named\": true\n        },\n        {\n          \"type\": \"simple_return_statement\",\n          \"named\": true\n        },\n        {\n          \"type\": \"timed_entry_call\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"unary_adding_operator\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"unknown_discriminant_part\",\n    \"named\": true,\n    \"fields\": {}\n  },\n  {\n    \"type\": \"use_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"is_all\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"all\",\n            \"named\": false\n          }\n        ]\n      },\n      \"is_type\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"type\",\n            \"named\": false\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"value_sequence\",\n    \"named\": true,\n    \"fields\": {\n      \"is_parallel\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"parallel\",\n            \"named\": false\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"chunk_specification\",\n          \"named\": true\n        },\n        {\n          \"type\": \"iterated_element_association\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"variant\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"component_list\",\n          \"named\": true\n        },\n        {\n          \"type\": \"discrete_choice_list\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"variant_list\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"variant\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"variant_part\",\n    \"named\": true,\n    \"fields\": {},\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"variant_list\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"with_clause\",\n    \"named\": true,\n    \"fields\": {\n      \"is_limited\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"limited\",\n            \"named\": false\n          }\n        ]\n      },\n      \"is_private\": {\n        \"multiple\": false,\n        \"required\": false,\n        \"types\": [\n          {\n            \"type\": \"private\",\n            \"named\": false\n          }\n        ]\n      }\n    },\n    \"children\": {\n      \"multiple\": true,\n      \"required\": true,\n      \"types\": [\n        {\n          \"type\": \"attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"character_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"function_call\",\n          \"named\": true\n        },\n        {\n          \"type\": \"gnatprep_identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"identifier\",\n          \"named\": true\n        },\n        {\n          \"type\": \"qualified_expression\",\n          \"named\": true\n        },\n        {\n          \"type\": \"reduction_attribute_designator\",\n          \"named\": true\n        },\n        {\n          \"type\": \"selected_component\",\n          \"named\": true\n        },\n        {\n          \"type\": \"slice\",\n          \"named\": true\n        },\n        {\n          \"type\": \"string_literal\",\n          \"named\": true\n        },\n        {\n          \"type\": \"target_name\",\n          \"named\": true\n        },\n        {\n          \"type\": \"tick\",\n          \"named\": true\n        },\n        {\n          \"type\": \"value_sequence\",\n          \"named\": true\n        }\n      ]\n    }\n  },\n  {\n    \"type\": \"#else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#elsif\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#end\",\n    \"named\": false\n  },\n  {\n    \"type\": \"#if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"&\",\n    \"named\": false\n  },\n  {\n    \"type\": \"(\",\n    \"named\": false\n  },\n  {\n    \"type\": \")\",\n    \"named\": false\n  },\n  {\n    \"type\": \"*\",\n    \"named\": false\n  },\n  {\n    \"type\": \"**\",\n    \"named\": false\n  },\n  {\n    \"type\": \"+\",\n    \"named\": false\n  },\n  {\n    \"type\": \",\",\n    \"named\": false\n  },\n  {\n    \"type\": \"-\",\n    \"named\": false\n  },\n  {\n    \"type\": \".\",\n    \"named\": false\n  },\n  {\n    \"type\": \"..\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/\",\n    \"named\": false\n  },\n  {\n    \"type\": \"/=\",\n    \"named\": false\n  },\n  {\n    \"type\": \":\",\n    \"named\": false\n  },\n  {\n    \"type\": \":=\",\n    \"named\": false\n  },\n  {\n    \"type\": \";\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<<\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"<>\",\n    \"named\": false\n  },\n  {\n    \"type\": \"=\",\n    \"named\": false\n  },\n  {\n    \"type\": \"=>\",\n    \"named\": false\n  },\n  {\n    \"type\": \">\",\n    \"named\": false\n  },\n  {\n    \"type\": \">=\",\n    \"named\": false\n  },\n  {\n    \"type\": \">>\",\n    \"named\": false\n  },\n  {\n    \"type\": \"Class\",\n    \"named\": false\n  },\n  {\n    \"type\": \"[\",\n    \"named\": false\n  },\n  {\n    \"type\": \"]\",\n    \"named\": false\n  },\n  {\n    \"type\": \"abort\",\n    \"named\": false\n  },\n  {\n    \"type\": \"abs\",\n    \"named\": false\n  },\n  {\n    \"type\": \"abstract\",\n    \"named\": false\n  },\n  {\n    \"type\": \"accept\",\n    \"named\": false\n  },\n  {\n    \"type\": \"access\",\n    \"named\": false\n  },\n  {\n    \"type\": \"aliased\",\n    \"named\": false\n  },\n  {\n    \"type\": \"all\",\n    \"named\": false\n  },\n  {\n    \"type\": \"and\",\n    \"named\": false\n  },\n  {\n    \"type\": \"array\",\n    \"named\": false\n  },\n  {\n    \"type\": \"at\",\n    \"named\": false\n  },\n  {\n    \"type\": \"begin\",\n    \"named\": false\n  },\n  {\n    \"type\": \"body\",\n    \"named\": false\n  },\n  {\n    \"type\": \"case\",\n    \"named\": false\n  },\n  {\n    \"type\": \"character_literal\",\n    \"named\": true\n  },\n  {\n    \"type\": \"comment\",\n    \"named\": true,\n    \"extra\": true\n  },\n  {\n    \"type\": \"constant\",\n    \"named\": false\n  },\n  {\n    \"type\": \"declare\",\n    \"named\": false\n  },\n  {\n    \"type\": \"delay\",\n    \"named\": false\n  },\n  {\n    \"type\": \"delta\",\n    \"named\": false\n  },\n  {\n    \"type\": \"digits\",\n    \"named\": false\n  },\n  {\n    \"type\": \"do\",\n    \"named\": false\n  },\n  {\n    \"type\": \"else\",\n    \"named\": false\n  },\n  {\n    \"type\": \"elsif\",\n    \"named\": false\n  },\n  {\n    \"type\": \"end\",\n    \"named\": false\n  },\n  {\n    \"type\": \"entry\",\n    \"named\": false\n  },\n  {\n    \"type\": \"exception\",\n    \"named\": false\n  },\n  {\n    \"type\": \"exit\",\n    \"named\": false\n  },\n  {\n    \"type\": \"for\",\n    \"named\": false\n  },\n  {\n    \"type\": \"function\",\n    \"named\": false\n  },\n  {\n    \"type\": \"generic\",\n    \"named\": false\n  },\n  {\n    \"type\": \"gnatprep_identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"goto\",\n    \"named\": false\n  },\n  {\n    \"type\": \"identifier\",\n    \"named\": true\n  },\n  {\n    \"type\": \"if\",\n    \"named\": false\n  },\n  {\n    \"type\": \"in\",\n    \"named\": false\n  },\n  {\n    \"type\": \"interface\",\n    \"named\": false\n  },\n  {\n    \"type\": \"is\",\n    \"named\": false\n  },\n  {\n    \"type\": \"limited\",\n    \"named\": false\n  },\n  {\n    \"type\": \"loop\",\n    \"named\": false\n  },\n  {\n    \"type\": \"mod\",\n    \"named\": false\n  },\n  {\n    \"type\": \"new\",\n    \"named\": false\n  },\n  {\n    \"type\": \"not\",\n    \"named\": false\n  },\n  {\n    \"type\": \"null\",\n    \"named\": false\n  },\n  {\n    \"type\": \"numeric_literal\",\n    \"named\": true\n  },\n  {\n    \"type\": \"of\",\n    \"named\": false\n  },\n  {\n    \"type\": \"or\",\n    \"named\": false\n  },\n  {\n    \"type\": \"others\",\n    \"named\": false\n  },\n  {\n    \"type\": \"out\",\n    \"named\": false\n  },\n  {\n    \"type\": \"overriding\",\n    \"named\": false\n  },\n  {\n    \"type\": \"package\",\n    \"named\": false\n  },\n  {\n    \"type\": \"parallel\",\n    \"named\": false\n  },\n  {\n    \"type\": \"pragma\",\n    \"named\": false\n  },\n  {\n    \"type\": \"private\",\n    \"named\": false\n  },\n  {\n    \"type\": \"procedure\",\n    \"named\": false\n  },\n  {\n    \"type\": \"protected\",\n    \"named\": false\n  },\n  {\n    \"type\": \"raise\",\n    \"named\": false\n  },\n  {\n    \"type\": \"range\",\n    \"named\": false\n  },\n  {\n    \"type\": \"record\",\n    \"named\": false\n  },\n  {\n    \"type\": \"rem\",\n    \"named\": false\n  },\n  {\n    \"type\": \"renames\",\n    \"named\": false\n  },\n  {\n    \"type\": \"requeue\",\n    \"named\": false\n  },\n  {\n    \"type\": \"return\",\n    \"named\": false\n  },\n  {\n    \"type\": \"reverse\",\n    \"named\": false\n  },\n  {\n    \"type\": \"select\",\n    \"named\": false\n  },\n  {\n    \"type\": \"separate\",\n    \"named\": false\n  },\n  {\n    \"type\": \"some\",\n    \"named\": false\n  },\n  {\n    \"type\": \"string_literal\",\n    \"named\": true\n  },\n  {\n    \"type\": \"subtype\",\n    \"named\": false\n  },\n  {\n    \"type\": \"synchronized\",\n    \"named\": false\n  },\n  {\n    \"type\": \"tagged\",\n    \"named\": false\n  },\n  {\n    \"type\": \"target_name\",\n    \"named\": true\n  },\n  {\n    \"type\": \"task\",\n    \"named\": false\n  },\n  {\n    \"type\": \"terminate\",\n    \"named\": false\n  },\n  {\n    \"type\": \"then\",\n    \"named\": false\n  },\n  {\n    \"type\": \"tick\",\n    \"named\": true\n  },\n  {\n    \"type\": \"type\",\n    \"named\": false\n  },\n  {\n    \"type\": \"until\",\n    \"named\": false\n  },\n  {\n    \"type\": \"use\",\n    \"named\": false\n  },\n  {\n    \"type\": \"when\",\n    \"named\": false\n  },\n  {\n    \"type\": \"while\",\n    \"named\": false\n  },\n  {\n    \"type\": \"with\",\n    \"named\": false\n  },\n  {\n    \"type\": \"xor\",\n    \"named\": false\n  },\n  {\n    \"type\": \"|\",\n    \"named\": false\n  }\n]";
Expand description

The content of the node-types.json file for this grammar.