Inline all rules that do not consume any character directly

This simplifies the trees significantly.
This commit is contained in:
Emmanuel Briot 2022-12-09 12:08:02 +01:00
parent a41588c541
commit 3b5200c14c
20 changed files with 46437 additions and 46450 deletions

File diff suppressed because it is too large Load Diff

View File

@ -142,14 +142,16 @@
; "limited"
; "synchronized"
; ]* @keyword.type
(full_type_declaration
; (identifier) @type
"is" @type.definition
; (access_type_definition "access" @keyword.type)
)
(full_type_declaration "is" @type.definition)
(full_type_declaration (_ "access") @type.definition)
;; Highlight full subprogram specifications
(subprogram_body (subprogram_specification) @function.spec)
(subprogram_body
[
(procedure_specification)
(function_specification)
] @function.spec
)
;; Highlight errors in red. This is not very useful in practice, as text will
;; be highlighted as user types, and the error could be elsewhere in the code.

View File

@ -3,14 +3,19 @@
;; See https://tree-sitter.github.io/tree-sitter/syntax-highlighting#local-variables
(package_specification) @scope
(subprogram_specification) @scope
(procedure_specification) @scope
(function_specification) @scope
(block_statement) @scope
(procedure_specification name: (identifier) @definition.var)
(function_specification name: (identifier) @definition.var)
(package_specification name: (identifier) @definition.var)
(package_body name: (identifier) @definition.var)
(generic_instantiation . name: (identifier) @definition.var)
(defining_identifier_list (identifier) @definition.var)
(procedure_specification name: (_) @definition.var)
(function_specification name: (_) @definition.var)
(package_specification name: (_) @definition.var)
(package_body name: (_) @definition.var)
(generic_instantiation . name: (_) @definition.var)
(component_declaration (identifier) @definition.var)
(exception_declaration (identifier) @definition.var)
(formal_object_declaration (identifier) @definition.var)
(object_declaration (identifier) @definition.var)
(parameter_specification (identifier) @definition.var)
(identifier) @reference

View File

@ -10,10 +10,13 @@
(subprogram_body) @function.outer
(subprogram_body (non_empty_declarative_part) @function.inner)
(subprogram_body (handled_sequence_of_statements) @function.inner)
(subprogram_specification) @function.outer
(function_specification) @function.outer
(procedure_specification) @function.outer
(package_specification) @function.outer
(package_body) @function.outer
(if_statement) @block.outer
(if_statement (sequence_of_statements) @block.inner)
(if_statement statements: (_) @block.inner)
(if_statement else_statements: (_) @block.inner)
(elsif_statement_item statements: (_) @block.inner)
(loop_statement) @block.outer
(loop_statement (sequence_of_statements) @block.inner)
(loop_statement statements: (_) @block.inner)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

82254
src/parser.c

File diff suppressed because it is too large Load Diff

View File

@ -17,59 +17,35 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(access_type_definition
(access_to_object_definition
(subtype_indication
(identifier)))))))
(type_declaration
(identifier)))
(full_type_declaration
(identifier)
(type_definition
(access_type_definition
(access_to_object_definition
(subtype_indication
(null_exclusion)
(identifier)))))))
(type_declaration
(identifier)))
(full_type_declaration
(identifier)
(type_definition
(access_type_definition
(access_to_object_definition
(general_access_modifier)
(subtype_indication
(identifier)))))))
(type_declaration
(identifier)))
(full_type_declaration
(identifier)
(type_definition
(access_type_definition
(access_to_object_definition
(general_access_modifier)
(subtype_indication
(identifier)))
(full_type_declaration
(identifier)
(access_to_subprogram_definition
(result_profile
(identifier))))
(full_type_declaration
(identifier)
(access_to_subprogram_definition
(result_profile
(identifier)))))))
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(access_type_definition
(access_to_subprogram_definition
(parameter_and_result_profile
(result_profile
(identifier))))))))
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(access_type_definition
(access_to_subprogram_definition
(parameter_and_result_profile
(result_profile
(identifier)))))))))))
================================================================================
Dereference
@ -85,28 +61,18 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(identifier)
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)
(identifier)))))))))))
(identifier)))))
(statement
(simple_statement
(procedure_call_statement
(identifier)
(function_call
@ -114,9 +80,5 @@ end;
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))))))))
(numeric_literal))))))))))))

View File

@ -14,118 +14,61 @@ end P;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(array_type_definition
(constrained_array_definition
(discrete_subtype_definition
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal)))))
(simple_expression
(numeric_literal))
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal)))
(component_definition
(subtype_indication
(identifier))))))))
(identifier))))
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier))
(assign_value
(identifier)
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(array_aggregate
(named_array_aggregate
(array_component_association
(discrete_choice_list
(discrete_choice
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))
(numeric_literal)))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))
(identifier))))
(array_component_association
(discrete_choice_list
(discrete_choice
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))
(numeric_literal)))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))))))))))))))
(identifier))))))))
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier))
(assign_value
(identifier)
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(array_aggregate
(named_array_aggregate
(array_component_association
(discrete_choice_list
(discrete_choice
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))
(numeric_literal)))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))
(identifier))))
(array_component_association
(discrete_choice_list
(discrete_choice))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))))))))))))))
(identifier))))))))
(identifier))))
================================================================================
@ -143,63 +86,31 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(array_type_definition
(constrained_array_definition
(discrete_subtype_definition
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal)))))
(simple_expression
(numeric_literal))
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal)))
(component_definition
(subtype_indication
(identifier))))))))
(identifier))))
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier))
(assign_value
(identifier)
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(array_aggregate
(positional_array_aggregate
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal)))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal)))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))))))))))
(numeric_literal))))))))))
================================================================================
Indefinite
@ -216,53 +127,30 @@ end P;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(array_type_definition
(unconstrained_array_definition
(index_subtype_definition
(identifier))
(component_definition
(subtype_indication
(identifier))))))))
(identifier))))
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier))
(assign_value
(identifier)
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(array_aggregate
(named_array_aggregate
(array_component_association
(discrete_choice_list
(discrete_choice
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal))
(term
(numeric_literal)))))
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))))))))))))))
(identifier))))))))
(identifier))))
================================================================================
@ -280,78 +168,43 @@ end P;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(array_type_definition
(unconstrained_array_definition
(index_subtype_definition
(identifier))
(index_subtype_definition
(identifier))
(component_definition
(subtype_indication
(identifier))))))))
(identifier))))
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier))
(assign_value
(identifier)
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(array_aggregate
(named_array_aggregate
(array_component_association
(discrete_choice_list
(discrete_choice
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal))
(term
(numeric_literal)))))
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(array_aggregate
(named_array_aggregate
(array_component_association
(discrete_choice_list
(discrete_choice
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal))
(term
(numeric_literal)))))
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))))))))))))))))))))))))
(identifier))))))))))))
(identifier))))
================================================================================
@ -367,57 +220,31 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(identifier)
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(array_aggregate
(named_array_aggregate
(array_component_association
(iterated_element_association
(loop_parameter_specification
(identifier)
(discrete_subtype_definition
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal)))))
(simple_expression
(numeric_literal))
(term
(factor
(primary
(identifier))))))))
(identifier))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(function_call
(identifier)
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))))))))))))))))))))))))))))))))
(identifier)))))))))))))))))))

View File

@ -17,71 +17,47 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(non_empty_declarative_part
(declarative_item_pragma
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(non_empty_declarative_part
(object_declaration
(identifier)
(identifier)
(constraint
(index_constraint
(discrete_range
(range_g
(identifier)
(tick)
(range_attribute_designator
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))
(numeric_literal))))))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(compound_statement
(loop_statement
(iteration_scheme
(loop_parameter_specification
(identifier)
(discrete_subtype_definition
(range_g
(identifier)
(tick)
(range_attribute_designator)))))
(sequence_of_statements
(range_attribute_designator))))
(statement
(simple_statement
(null_statement)))))))
(null_statement))))
(statement
(compound_statement
(loop_statement
(iteration_scheme
(loop_parameter_specification
(identifier)
(discrete_subtype_definition
(range_g
(identifier)
(tick)
(range_attribute_designator
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))
(sequence_of_statements
(numeric_literal)))))))
(statement
(simple_statement
(null_statement)))))))))))))
(null_statement))))))))
================================================================================
Reduction
@ -99,27 +75,15 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(non_empty_declarative_part
(declarative_item_pragma
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier))
(assign_value
(identifier)
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(attribute_reference
(reduction_attribute_reference
(value_sequence
(iterated_element_association
(iterator_specification
@ -127,55 +91,28 @@ end;
(identifier)
(iterator_filter
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))
(numeric_literal)))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(array_aggregate
(positional_array_aggregate
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))
(identifier)))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))
(numeric_literal))))))))
(tick)
(reduction_attribute_designator
(identifier)
(reduction_specification
(string_literal)
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))))))))))
(numeric_literal)))))))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))))))
(null_statement))))))

View File

@ -17,36 +17,21 @@ end;
(compilation
(compilation_unit
(generic_declaration
(generic_package_declaration
(generic_formal_part
(generic_formal_parameter_declaration
(formal_object_declaration
(defining_identifier_list
(identifier))
(identifier)
(assign_value
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))
(generic_formal_parameter_declaration
(formal_type_declaration
(numeric_literal))))
(formal_complete_type_declaration
(identifier)
(discriminant_part
(unknown_discriminant_part))
(formal_type_definition
(formal_private_type_definition))
(identifier))))
(generic_formal_parameter_declaration
(formal_type_declaration
(unknown_discriminant_part)
(formal_private_type_definition)
(identifier))
(formal_incomplete_type_declaration
(identifier))))
(generic_formal_parameter_declaration
(identifier))
(formal_package_declaration
(identifier)
(function_call
@ -56,49 +41,32 @@ end;
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(numeric_literal))))
(parameter_association
(component_choice_list
(identifier)))))))
(generic_formal_parameter_declaration
(identifier))))))
(formal_subprogram_declaration
(formal_concrete_subprogram_declaration
(subprogram_specification
(procedure_specification
(identifier)))
(subprogram_default))))
(generic_formal_parameter_declaration
(identifier))
(subprogram_default)))
(formal_subprogram_declaration
(formal_concrete_subprogram_declaration
(subprogram_specification
(function_specification
(identifier)
(parameter_and_result_profile
(result_profile
(identifier)))))
(subprogram_default)))))
(identifier)))
(subprogram_default))))
(package_specification
(identifier)
(pragma_g
(identifier)
(pragma_argument_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))
(identifier))))
(pragma_argument_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(string_literal))))))))))))))
(string_literal)))))))))

View File

@ -93,28 +93,21 @@ end Child.P2;
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(proper_body
(package_body
(identifier)
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(identifier)))))
(null_statement)))
(identifier)))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(null_statement)))
(identifier)
(identifier)))))
(identifier))))
================================================================================
separate
@ -129,9 +122,8 @@ end;
(compilation_unit
(subunit
(identifier)
(proper_body
(package_body
(identifier))))))
(identifier)))))
================================================================================
private types
@ -149,30 +141,20 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(private_type_declaration
(identifier)))
(type_declaration
(identifier))
(private_extension_declaration
(identifier)
(subtype_indication
(identifier))))
(type_declaration
(identifier))
(private_type_declaration
(identifier)
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier))
(aspect_definition
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))
(numeric_literal))))))))))
================================================================================
incomplete types
@ -192,24 +174,17 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(incomplete_type_declaration
(identifier)))
(type_declaration
(identifier))
(incomplete_type_declaration
(identifier)
(discriminant_part
(known_discriminant_part
(discriminant_specification_list
(discriminant_specification
(defining_identifier_list
(identifier))
(identifier)))))))
(type_declaration
(identifier)
(identifier)))))
(incomplete_type_declaration
(identifier)
(discriminant_part
(unknown_discriminant_part))))
(type_declaration
(unknown_discriminant_part))
(incomplete_type_declaration
(identifier))))))
(identifier)))))

View File

@ -30,137 +30,87 @@ end;
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(object_declaration
(single_protected_declaration
(identifier)
(protected_definition
(protected_operation_declaration
(subprogram_declaration
(subprogram_specification
(procedure_specification
(identifier)))))
(protected_operation_declaration
(identifier)))
(subprogram_declaration
(subprogram_specification
(function_specification
(identifier)
(parameter_and_result_profile
(result_profile
(identifier)))))))
(protected_operation_declaration
(identifier))))
(entry_declaration
(identifier)))
(protected_operation_declaration
(identifier))
(entry_declaration
(identifier)
(discrete_subtype_definition
(subtype_indication
(identifier)))
(identifier)
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier))))))
(protected_element_declaration
(identifier)
(identifier)))))
(component_declaration
(defining_identifier_list
(identifier))
(identifier)
(component_definition
(subtype_indication
(identifier)))))
(identifier)))))
(declarative_item_pragma
(proper_body
(identifier)))
(identifier))))
(protected_body
(identifier)
(protected_operation_item
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(abort_statement
(identifier))))))))
(protected_operation_item
(identifier)))))
(subprogram_body
(subprogram_specification
(function_specification
(identifier)
(parameter_and_result_profile
(result_profile
(identifier)))))
(identifier)))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(simple_return_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))))))
(protected_operation_item
(identifier)))))))
(entry_body
(identifier)
(entry_barrier
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(numeric_literal))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(requeue_statement
(identifier))))))
(identifier)))
(protected_operation_item
(identifier))))
(identifier))
(entry_body
(identifier)
(non_empty_entry_body_formal_part
(entry_index_specification
(identifier)
(discrete_subtype_definition
(subtype_indication
(identifier))))
(identifier))
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier)))))
(entry_barrier
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))
(identifier))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(identifier)))
(identifier)))))))))
(null_statement)))
(identifier))
(identifier))))))

View File

@ -12,12 +12,10 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(record_type_definition
(record_definition))))))))
(record_definition))))))
================================================================================
records
@ -41,72 +39,43 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(record_type_definition
(record_definition
(component_list
(component_item
(component_declaration
(defining_identifier_list
(identifier))
(component_definition
(subtype_indication
(identifier)))))
(component_item
(component_declaration
(defining_identifier_list
(identifier))
(component_definition
(subtype_indication
(identifier)
(constraint
(scalar_constraint
(component_definition
(identifier)))
(component_declaration
(identifier)
(component_definition
(identifier)
(range_constraint
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal)))))
(simple_expression
(numeric_literal))
(term
(factor
(primary
(numeric_literal)))))))))))))
(component_item
(numeric_literal))))))
(component_declaration
(defining_identifier_list
(identifier)
(identifier))
(identifier)
(component_definition
(access_definition
(null_exclusion)
(identifier)))))))))))
(aspect_clause
(identifier))))))))
(record_representation_clause
(identifier)
(component_clause
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))
(term
(numeric_literal))
(term
(numeric_literal)))))))
(simple_expression
(term
(factor
(primary
(numeric_literal)))))
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))
================================================================================
Multiple fields on one line
@ -124,21 +93,16 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(record_type_definition
(record_definition
(component_list
(component_item
(component_declaration
(defining_identifier_list
(identifier)
(identifier))
(identifier)
(component_definition
(subtype_indication
(identifier))))))))))))))
(identifier))))))))))
================================================================================
Discriminated
@ -156,30 +120,23 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(known_discriminant_part
(discriminant_specification_list
(discriminant_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier))
(discriminant_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier))))
(type_definition
(record_type_definition
(record_definition
(component_list
(component_item
(component_declaration
(defining_identifier_list
(identifier))
(identifier)
(component_definition
(subtype_indication
(identifier))))))))))))))
(identifier))))))))))
================================================================================
tagged
@ -198,29 +155,21 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(record_type_definition
(record_definition)))))
(type_declaration
(record_definition)))
(full_type_declaration
(identifier)
(type_definition
(derived_type_definition
(subtype_indication
(identifier))
(identifier)
(record_extension_part
(record_definition
(component_list
(component_item
(component_declaration
(defining_identifier_list
(identifier))
(identifier)
(component_definition
(subtype_indication
(identifier)))))))))))))))
(identifier)))))))))))
================================================================================
Variant
@ -243,16 +192,13 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(known_discriminant_part
(discriminant_specification_list
(discriminant_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier))))
(type_definition
(record_type_definition
(record_definition
(component_list
@ -263,36 +209,23 @@ end;
(discrete_choice_list
(discrete_choice
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(numeric_literal))))
(discrete_choice
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal))
(term
(numeric_literal)))))
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(component_list
(component_item
(component_declaration
(defining_identifier_list
(identifier))
(identifier)
(component_definition
(subtype_indication
(identifier)))))))
(identifier)))))
(variant
(discrete_choice_list
(discrete_choice))
(component_list)))))))))))))
(component_list)))))))))))
================================================================================
interface
@ -310,27 +243,20 @@ end;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(interface_type_definition))))
(type_declaration
(interface_type_definition))
(full_type_declaration
(identifier)
(type_definition
(interface_type_definition
(identifier)))))
(type_declaration
(identifier)))
(full_type_declaration
(identifier)
(type_definition
(derived_type_definition
(subtype_indication
(identifier))
(identifier)
(identifier)
(record_extension_part
(record_definition)))))))))
(record_definition)))))))
================================================================================
record aggregates
@ -345,45 +271,27 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(identifier)
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(record_aggregate
(record_component_association_list
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal)))
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))))))))))
(numeric_literal)))))))))))))
================================================================================
record aggregate extension
@ -398,43 +306,25 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(identifier)
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(extension_aggregate
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))
(identifier)))
(record_component_association_list
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))))))))))
(numeric_literal)))))))))))))
================================================================================
record delta aggregate
@ -449,41 +339,22 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(identifier)
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(delta_aggregate
(record_delta_aggregate
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))
(identifier)))
(record_component_association_list
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))))))))))))))))
(numeric_literal)))))))))))))

View File

@ -17,56 +17,37 @@ end P;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(non_empty_declarative_part
(declarative_item_pragma
(renaming_declaration
(object_renaming_declaration
(identifier)
(identifier))))
(declarative_item_pragma
(renaming_declaration
(identifier))
(object_renaming_declaration
(identifier)
(identifier)
(identifier))))
(declarative_item_pragma
(renaming_declaration
(identifier))
(exception_renaming_declaration
(identifier)
(identifier))))
(declarative_item_pragma
(renaming_declaration
(identifier))
(package_renaming_declaration
(identifier)
(identifier)
(identifier))))
(declarative_item_pragma
(renaming_declaration
(identifier))
(subprogram_renaming_declaration
(subprogram_specification
(procedure_specification
(identifier)
(non_empty_parameter_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)))))))
(identifier))))
(declarative_item_pragma
(renaming_declaration
(generic_renaming_declaration
(identifier)
(identifier)))))
(identifier))
(generic_renaming_declaration
(identifier)
(identifier)))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(identifier)))))
(null_statement)))
(identifier))))

View File

@ -11,37 +11,29 @@ end;
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(body_stub
(subprogram_body_stub
(overriding_indicator)
(subprogram_specification
(procedure_specification
(identifier))
(aspect_specification
(aspect_mark_list
(aspect_association
(identifier))))))
(body_stub
(subprogram_body_stub
(overriding_indicator)
(function_specification
(identifier)
(result_profile
(identifier)))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier))))))))
(declarative_item_pragma
(body_stub
(subprogram_body_stub
(overriding_indicator)
(subprogram_specification
(function_specification
(identifier)
(parameter_and_result_profile
(result_profile
(identifier)))))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier)))))))))))))
(identifier))))))))))
================================================================================
Separate packages
@ -55,14 +47,12 @@ end;
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(body_stub
(package_body_stub
(identifier)))))))))
(identifier)))))))
================================================================================
Separate protected
@ -76,15 +66,13 @@ end P;
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(body_stub
(protected_body_stub
(identifier)))))
(identifier)))))
(identifier))))
(identifier))))
================================================================================
Separate task
@ -98,12 +86,10 @@ end P;
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(body_stub
(task_body_stub
(identifier)))))
(identifier)))))
(identifier))))
(identifier))))

View File

@ -1,3 +1,25 @@
================================================================================
Factors
================================================================================
A : constant Integer := 2 + 8 * 3;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(object_declaration
(identifier)
(identifier)
(expression
(term
(numeric_literal))
(binary_adding_operator)
(term
(numeric_literal)
(multiplying_operator)
(numeric_literal))))))
================================================================================
While
================================================================================
@ -14,44 +36,26 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(compound_statement
(loop_statement
(iteration_scheme
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))
(sequence_of_statements
(identifier))))
(statement
(simple_statement
(exit_statement)))
(exit_statement))
(statement
(simple_statement
(exit_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))))
(numeric_literal)))))))))))
================================================================================
For loops
@ -74,52 +78,37 @@ end P;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(compound_statement
(loop_statement
(iteration_scheme
(iterator_specification
(identifier)
(identifier)
(attribute_reference
(identifier)
(tick)
(attribute_designator
(identifier)))))
(sequence_of_statements
(statement
(simple_statement
(goto_statement
(identifier))))
(label
(identifier))))))
(statement
(compound_statement
(goto_statement
(identifier)))
(label
(identifier))))
(statement
(loop_statement
(iteration_scheme
(iterator_specification
(identifier)
(identifier)))
(sequence_of_statements
(statement
(simple_statement
(delay_statement
(delay_relative_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))))))
(identifier)))))
(numeric_literal))))))))
(identifier))))
================================================================================
Named loop
@ -137,24 +126,18 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(compound_statement
(loop_statement
(loop_label
(identifier))
(sequence_of_statements
(statement
(simple_statement
(exit_statement
(identifier)))))
(identifier))))))))))
(identifier)))
(identifier)))))))
================================================================================
Return
@ -172,59 +155,35 @@ end F;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(function_specification
(identifier)
(parameter_and_result_profile
(result_profile
(identifier)))))
(identifier)))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(simple_return_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))
(identifier)))))
(statement
(compound_statement
(extended_return_statement
(extended_return_object_declaration
(identifier)
(return_subtype_indication
(subtype_indication
(identifier)))
(assign_value
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(record_aggregate
(record_component_association_list
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))
(numeric_literal))))))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement))))))))))
(identifier)))))
(null_statement))))))
(identifier))))
================================================================================
Procedure call
@ -239,42 +198,28 @@ end P;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)
(non_empty_parameter_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)))))))
(identifier)
(identifier)))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(procedure_call_statement
(identifier)
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(numeric_literal))))
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))))))
(identifier)))))
(identifier))))))))
(identifier))))
================================================================================
Raise exception
@ -290,28 +235,19 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(raise_statement
(identifier))))
(identifier)))
(statement
(simple_statement
(raise_statement
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(string_literal))))))))))))))))
(string_literal)))))))))
================================================================================
Function calls
@ -327,31 +263,19 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(non_empty_declarative_part
(declarative_item_pragma
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier)))))
(non_empty_declarative_part
(object_declaration
(identifier)
(identifier)))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(identifier)
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(function_call
(identifier)
(actual_parameter_part
@ -359,12 +283,8 @@ end;
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))))))))))
(numeric_literal))))))))))))))
================================================================================
if statement
@ -396,99 +316,56 @@ end P;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(compound_statement
(if_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal))))))
(relation
(simple_expression
(numeric_literal))
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(sequence_of_statements
(numeric_literal)))
(statement
(compound_statement
(block_statement
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))))))
(null_statement)))))
(elsif_statement_item
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(sequence_of_statements
(numeric_literal)))
(statement
(compound_statement
(block_statement
(non_empty_declarative_part
(declarative_item_pragma
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier)))))
(identifier)
(identifier)))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement))))
(exception_handler_list
(null_statement))
(exception_handler
(exception_choice_list
(exception_choice
(identifier)))
(sequence_of_statements
(statement
(simple_statement
(null_statement))))))))))))
(sequence_of_statements
(null_statement)))))))
(statement
(compound_statement
(block_statement
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement))))))))))))))
(identifier)))))
(null_statement))))))))
(identifier))))
================================================================================
Case statement
@ -508,22 +385,14 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(compound_statement
(case_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(function_call
(identifier)
(actual_parameter_part
@ -531,52 +400,30 @@ end;
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))
(numeric_literal))))))))
(case_statement_alternative
(discrete_choice_list
(discrete_choice
(range_g
(simple_expression
(term
(factor
(primary
(character_literal))
(term
(character_literal)))))
(simple_expression
(term
(factor
(primary
(character_literal))))))))
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(null_statement)))
(case_statement_alternative
(discrete_choice_list
(discrete_choice
(expression
(relation
(simple_expression
(term
(factor
(primary
(character_literal))))))))
(character_literal))))
(discrete_choice
(expression
(relation
(simple_expression
(term
(factor
(primary
(character_literal)))))))))
(sequence_of_statements
(character_literal)))))
(statement
(simple_statement
(null_statement))))))))))))))
(null_statement)))))))))
================================================================================
Allocators
@ -592,64 +439,38 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(identifier)
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(allocator
(subtype_indication_paren_constraint
(identifier)))))))))))))
(identifier))))))
(statement
(simple_statement
(assignment_statement
(identifier)
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(allocator
(subpool_specification
(identifier)
(identifier))
(subtype_indication_paren_constraint
(qualified_expression
(identifier)
(tick)
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(record_aggregate
(record_component_association_list
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))))))))))))))))))))))))
(numeric_literal)))))))))))))))))
================================================================================
Filtered for loops
@ -666,15 +487,11 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(compound_statement
(loop_statement
(iteration_scheme
(iterator_specification
@ -682,22 +499,13 @@ end;
(identifier)
(iterator_filter
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))
(sequence_of_statements
(numeric_literal))))))
(statement
(simple_statement
(null_statement)))))))))))))
(null_statement))))))))
================================================================================
Assignment target name
@ -713,15 +521,11 @@ end;
(compilation
(compilation_unit
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(identifier))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(assignment_statement
(identifier)
(function_call
@ -729,27 +533,15 @@ end;
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))
(assign_value
(identifier))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(target_name))))
(target_name))
(binary_adding_operator)
(term
(factor
(primary
(numeric_literal)))))))))))
(numeric_literal)))))
(statement
(simple_statement
(assignment_statement
(identifier)
(function_call
@ -757,27 +549,14 @@ end;
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))
(assign_value
(identifier))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(function_call
(identifier)
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(target_name))))))))))))))))))))))))))
(target_name))))))))))))))

View File

@ -27,8 +27,7 @@ end;
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier)))))))))
(identifier))))))))
================================================================================
procedures
@ -46,26 +45,21 @@ end;
(package_specification
(identifier)
(subprogram_declaration
(subprogram_specification
(procedure_specification
(identifier)
(non_empty_parameter_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier)
(identifier)
(identifier))
(identifier))
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)))))))
(identifier)
(identifier)))))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier)))))))))
(identifier))))))))
================================================================================
abstract procedures
@ -83,19 +77,16 @@ end;
(package_specification
(identifier)
(subprogram_declaration
(subprogram_specification
(procedure_specification
(identifier))))
(subprogram_declaration
(overriding_indicator)
(subprogram_specification
(procedure_specification
(identifier)))
(subprogram_declaration
(overriding_indicator)
(procedure_specification
(identifier))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier)))))))))
(identifier))))))))
================================================================================
functions
@ -113,37 +104,27 @@ end;
(package_specification
(identifier)
(subprogram_declaration
(subprogram_specification
(function_specification
(identifier)
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier)
(identifier))
(identifier)
(identifier))))
(result_profile
(access_definition
(null_exclusion)
(identifier))))))
(identifier))))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier)))
(aspect_association
(aspect_mark
(identifier))
(aspect_definition
(aspect_association
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))))))))))
(identifier))))))))))
================================================================================
subprogram body
@ -161,36 +142,25 @@ end;
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)
(non_empty_parameter_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)))))))
(non_empty_declarative_part
(declarative_item_pragma
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier)
(identifier)))))
(non_empty_declarative_part
(object_declaration
(identifier)
(identifier)))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(identifier)))))))))
(null_statement)))
(identifier))))))
================================================================================
Expression function membership
@ -206,29 +176,20 @@ function F2 (A : Integer) return Boolean
(expression_function_declaration
(function_specification
(identifier)
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier))))
(result_profile
(identifier))))
(identifier)))
(expression
(relation
(simple_expression
(relation_membership
(term
(factor
(primary
(identifier)))))
(identifier))
(membership_choice_list
(membership_choice
(simple_expression
(term
(factor
(primary
(identifier))))))))))))
(identifier))))))))
================================================================================
Expression function declare
@ -244,42 +205,26 @@ function F2 (A : Integer) return Boolean
(expression_function_declaration
(function_specification
(identifier)
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier))))
(result_profile
(identifier))))
(identifier)))
(declare_expression
(declare_item
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier))
(assign_value
(identifier)
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))
(identifier))
(binary_adding_operator)
(term
(factor
(primary
(numeric_literal))))))))))
(numeric_literal))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))))))
(identifier)))))))
================================================================================
Expression function raise
@ -295,13 +240,11 @@ function F3 return Boolean
(expression_function_declaration
(function_specification
(identifier)
(parameter_and_result_profile
(result_profile
(identifier))))
(identifier)))
(expression
(relation
(raise_expression
(identifier)))))))
(identifier))))))
================================================================================
Expression function simple
@ -316,16 +259,11 @@ function F4 return Boolean is (True);
(expression_function_declaration
(function_specification
(identifier)
(parameter_and_result_profile
(result_profile
(identifier))))
(identifier)))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))
(identifier))))))
================================================================================
Expression function if
@ -341,56 +279,31 @@ function F (A : Integer) return Boolean
(expression_function_declaration
(function_specification
(identifier)
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier))))
(result_profile
(identifier))))
(conditional_expression
(identifier)))
(if_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal))))))
(relation
(simple_expression
(numeric_literal))
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal)))
(expression
(term
(identifier)))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))))
================================================================================
Expression function if extra parenthesis
@ -406,50 +319,28 @@ function F5 (A : Integer) return Boolean
(expression_function_declaration
(function_specification
(identifier)
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier))))
(result_profile
(identifier))))
(identifier)))
(expression
(relation
(simple_expression
(term
(factor
(primary
(conditional_expression
(if_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal)))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))
(identifier)))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))))))))))
(identifier)))))))))
================================================================================
Expression function case
@ -467,72 +358,43 @@ function F (A : Integer) return Boolean
(expression_function_declaration
(function_specification
(identifier)
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier))))
(result_profile
(identifier))))
(conditional_expression
(identifier)))
(case_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))
(identifier))
(binary_adding_operator)
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal)))
(case_expression_alternative
(discrete_choice_list
(discrete_choice
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal)))))
(simple_expression
(numeric_literal))
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal))))
(discrete_choice
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal))
(term
(numeric_literal)))))
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))
(identifier))))
(case_expression_alternative
(discrete_choice_list
(discrete_choice))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))))))))
(identifier))))))))
================================================================================
Expression function array
@ -547,33 +409,20 @@ function F return My_Array is (1 .. 2 => True);
(expression_function_declaration
(function_specification
(identifier)
(parameter_and_result_profile
(result_profile
(identifier))))
(aggregate
(array_aggregate
(identifier)))
(named_array_aggregate
(array_component_association
(discrete_choice_list
(discrete_choice
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal))
(term
(numeric_literal)))))
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))))))
(identifier))))))))
================================================================================
Expression function quantified
@ -590,33 +439,24 @@ function F (A : My_Array) return Boolean
(expression_function_declaration
(function_specification
(identifier)
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier))))
(result_profile
(identifier))))
(identifier)))
(quantified_expression
(quantifier)
(iterator_specification
(identifier)
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(identifier))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))
(numeric_literal)))))))
================================================================================
Operators
@ -631,32 +471,22 @@ end "<";
(compilation
(compilation_unit
(proper_body
(subprogram_body
(overriding_indicator)
(subprogram_specification
(function_specification
(string_literal)
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier)
(identifier))
(identifier)
(identifier))))
(result_profile
(identifier)))))
(identifier)))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(simple_return_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))))
(string_literal)))))
(identifier))))))
(string_literal))))

View File

@ -34,60 +34,43 @@ end P;
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(object_declaration
(single_task_declaration
(identifier)
(task_definition
(task_item
(entry_declaration
(identifier)
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier))))))
(task_item
(entry_declaration
(identifier)))
(identifier)
(identifier)))))
(declarative_item_pragma
(proper_body
(entry_declaration
(identifier))
(identifier))))
(task_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(identifier)))))
(identifier)
(identifier)))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(compound_statement
(accept_statement
(identifier)
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier)
(identifier))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(identifier))))
(null_statement)))
(identifier)))
(statement
(compound_statement
(select_statement
(timed_entry_call
(entry_call_alternative
(procedure_call_statement
@ -95,25 +78,14 @@ end P;
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))
(numeric_literal)))))))
(delay_alternative
(delay_statement
(delay_relative_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))
(numeric_literal)))))))
(statement
(compound_statement
(select_statement
(conditional_entry_call
(entry_call_alternative
(procedure_call_statement
@ -121,18 +93,12 @@ end P;
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))
(sequence_of_statements
(numeric_literal)))))))
(statement
(simple_statement
(null_statement))))))))))
(identifier)))))
(identifier)))))
(null_statement)))))
(identifier)))
(identifier))))
================================================================================
Task types
@ -152,42 +118,32 @@ end;
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(type_declaration
(full_type_declaration
(task_type_declaration
(identifier)))))
(declarative_item_pragma
(type_declaration
(identifier)))
(full_type_declaration
(task_type_declaration
(identifier)
(task_definition
(task_item
(entry_declaration
(identifier)
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(identifier))))))
(identifier))))))
(declarative_item_pragma
(type_declaration
(identifier)
(identifier)))))
(identifier))))
(full_type_declaration
(task_type_declaration
(identifier)
(identifier)
(task_definition
(task_item
(entry_declaration
(identifier)))
(identifier)))))))))))
(identifier))
(identifier))))))))
================================================================================
asynchronous select
@ -212,19 +168,13 @@ end;
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(proper_body
(task_body
(identifier)
(handled_sequence_of_statements
(sequence_of_statements
(statement
(compound_statement
(select_statement
(asynchronous_select
(triggering_alternative
(procedure_call_statement
@ -233,32 +183,21 @@ end;
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))
(sequence_of_statements
(numeric_literal)))))))
(statement
(simple_statement
(null_statement)))))
(sequence_of_statements
(null_statement)))
(statement
(simple_statement
(procedure_call_statement
(identifier))))))))))))))))))
(identifier))))))))))
(compilation_unit
(statement
(simple_statement
(null_statement))))
(null_statement)))
(compilation_unit
(statement
(procedure_call_statement
(identifier))))
(compilation_unit
(statement
(simple_statement
(procedure_call_statement
(identifier)))))
(compilation_unit
(statement
(simple_statement
(procedure_call_statement
(identifier))))))

View File

@ -12,22 +12,13 @@ end P;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(integer_type_definition
(signed_integer_type_definition
(simple_expression
(term
(factor
(primary
(numeric_literal)))))
(simple_expression
(numeric_literal))
(term
(factor
(primary
(numeric_literal))))))))))
(numeric_literal))))
(identifier))))
================================================================================
@ -45,26 +36,17 @@ end P;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(derived_type_definition
(subtype_indication
(identifier))))
(identifier))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier))
(aspect_definition
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))
(numeric_literal)))))))
(identifier))))
================================================================================
@ -81,19 +63,12 @@ end P;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(integer_type_definition
(modular_type_definition
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))
(numeric_literal)))))
(identifier))))
================================================================================
@ -112,73 +87,36 @@ end P;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(derived_type_definition
(subtype_indication
(identifier)
(constraint
(scalar_constraint
(range_constraint
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal)))))
(simple_expression
(numeric_literal))
(term
(factor
(primary
(numeric_literal))))))))))))))
(type_declaration
(numeric_literal))))))
(full_type_declaration
(identifier)
(type_definition
(real_type_definition
(fixed_point_definition
(decimal_fixed_point_definition
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal)))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))
(type_declaration
(numeric_literal)))))
(full_type_declaration
(identifier)
(type_definition
(real_type_definition
(fixed_point_definition
(ordinary_fixed_point_definition
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(numeric_literal)))
(real_range_specification
(simple_expression
(term
(factor
(primary
(numeric_literal))
(term
(numeric_literal)))))
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))
(identifier))))
================================================================================
@ -196,53 +134,33 @@ end P;
(compilation_unit
(package_specification
(identifier)
(type_declaration
(full_type_declaration
(identifier)
(type_definition
(enumeration_type_definition
(identifier)
(identifier)))))
(aspect_clause
(identifier)))
(enumeration_representation_clause
(identifier)
(enumeration_aggregate
(array_aggregate
(named_array_aggregate
(array_component_association
(discrete_choice_list
(discrete_choice
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))))
(identifier)))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(numeric_literal))))
(array_component_association
(discrete_choice_list
(discrete_choice
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))))))
(identifier)))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))
(numeric_literal)))))))
(identifier))))
================================================================================
@ -262,50 +180,25 @@ end P;
(identifier)
(subtype_declaration
(identifier)
(subtype_indication
(identifier)
(constraint
(scalar_constraint
(range_constraint
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal))
(term
(numeric_literal)))))
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))
(subtype_declaration
(identifier)
(subtype_indication
(identifier)
(constraint
(index_constraint
(discrete_range
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal)))))
(simple_expression
(numeric_literal))
(term
(factor
(primary
(numeric_literal)))))))
(discrete_range
(numeric_literal)))
(range_g
(simple_expression
(term
(factor
(primary
(numeric_literal))
(term
(numeric_literal)))))
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))
(identifier))))