tree-sitter-ada/src/node-types.json
Troy Brown 6c3dc1f0ae Correct parsing of discriminant constraints in allocators.
The existing grammar was causing discriminant constraints in
allocators to be incorrectly parsed as function calls.  This change
modifies the grammar to more accurately follow the grammar of the
language and corrects the issue.

Updated the test corpus to add additional allocator tests with
numerous subtype indications and qualified expressions for more
extensive testing.
2024-05-22 21:12:41 +02:00

12601 lines
249 KiB
JSON

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