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" ; "limited"
; "synchronized" ; "synchronized"
; ]* @keyword.type ; ]* @keyword.type
(full_type_declaration (full_type_declaration "is" @type.definition)
; (identifier) @type (full_type_declaration (_ "access") @type.definition)
"is" @type.definition
; (access_type_definition "access" @keyword.type)
)
;; Highlight full subprogram specifications ;; 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 ;; 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. ;; 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 ;; See https://tree-sitter.github.io/tree-sitter/syntax-highlighting#local-variables
(package_specification) @scope (package_specification) @scope
(subprogram_specification) @scope (procedure_specification) @scope
(function_specification) @scope
(block_statement) @scope (block_statement) @scope
(procedure_specification name: (identifier) @definition.var) (procedure_specification name: (_) @definition.var)
(function_specification name: (identifier) @definition.var) (function_specification name: (_) @definition.var)
(package_specification name: (identifier) @definition.var) (package_specification name: (_) @definition.var)
(package_body name: (identifier) @definition.var) (package_body name: (_) @definition.var)
(generic_instantiation . name: (identifier) @definition.var) (generic_instantiation . name: (_) @definition.var)
(defining_identifier_list (identifier) @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 (identifier) @reference

View File

@ -10,10 +10,13 @@
(subprogram_body) @function.outer (subprogram_body) @function.outer
(subprogram_body (non_empty_declarative_part) @function.inner) (subprogram_body (non_empty_declarative_part) @function.inner)
(subprogram_body (handled_sequence_of_statements) @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_specification) @function.outer
(package_body) @function.outer (package_body) @function.outer
(if_statement) @block.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) @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 (compilation_unit
(package_specification (package_specification
(identifier) (identifier)
(type_declaration (full_type_declaration
(full_type_declaration (identifier)
(identifier) (access_to_object_definition
(type_definition (identifier)))
(access_type_definition (full_type_declaration
(access_to_object_definition (identifier)
(subtype_indication (access_to_object_definition
(identifier))))))) (null_exclusion)
(type_declaration (identifier)))
(full_type_declaration (full_type_declaration
(identifier) (identifier)
(type_definition (access_to_object_definition
(access_type_definition (general_access_modifier)
(access_to_object_definition (identifier)))
(subtype_indication (full_type_declaration
(null_exclusion) (identifier)
(identifier))))))) (access_to_object_definition
(type_declaration (general_access_modifier)
(full_type_declaration (identifier)))
(identifier) (full_type_declaration
(type_definition (identifier)
(access_type_definition (access_to_subprogram_definition
(access_to_object_definition (result_profile
(general_access_modifier) (identifier))))
(subtype_indication (full_type_declaration
(identifier))))))) (identifier)
(type_declaration (access_to_subprogram_definition
(full_type_declaration (result_profile
(identifier) (identifier)))))))
(type_definition
(access_type_definition
(access_to_object_definition
(general_access_modifier)
(subtype_indication
(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 Dereference
@ -85,38 +61,24 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (handled_sequence_of_statements
(identifier))) (statement
(handled_sequence_of_statements (assignment_statement
(sequence_of_statements (identifier)
(statement (expression
(simple_statement (term
(assignment_statement (identifier)
(identifier) (identifier)))))
(assign_value (statement
(expression (procedure_call_statement
(relation (identifier)
(simple_expression (function_call
(term (identifier)
(factor (actual_parameter_part
(primary (parameter_association
(identifier) (expression
(identifier))))))))))) (term
(statement (numeric_literal))))))))))))
(simple_statement
(procedure_call_statement
(identifier)
(function_call
(identifier)
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))))))))

View File

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

View File

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

View File

@ -17,88 +17,56 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(generic_declaration (generic_package_declaration
(generic_package_declaration (generic_formal_part
(generic_formal_part (formal_object_declaration
(generic_formal_parameter_declaration
(formal_object_declaration
(defining_identifier_list
(identifier))
(identifier)
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))
(generic_formal_parameter_declaration
(formal_type_declaration
(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
(formal_incomplete_type_declaration
(identifier))))
(generic_formal_parameter_declaration
(formal_package_declaration
(identifier)
(function_call
(identifier)
(actual_parameter_part
(parameter_association
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(parameter_association
(component_choice_list
(identifier)))))))
(generic_formal_parameter_declaration
(formal_subprogram_declaration
(formal_concrete_subprogram_declaration
(subprogram_specification
(procedure_specification
(identifier)))
(subprogram_default))))
(generic_formal_parameter_declaration
(formal_subprogram_declaration
(formal_concrete_subprogram_declaration
(subprogram_specification
(function_specification
(identifier)
(parameter_and_result_profile
(result_profile
(identifier)))))
(subprogram_default)))))
(package_specification
(identifier) (identifier)
(pragma_g (identifier)
(expression
(term
(numeric_literal))))
(formal_complete_type_declaration
(identifier)
(unknown_discriminant_part)
(formal_private_type_definition)
(identifier))
(formal_incomplete_type_declaration
(identifier))
(formal_package_declaration
(identifier)
(function_call
(identifier) (identifier)
(pragma_argument_association (actual_parameter_part
(expression (parameter_association
(relation (component_choice_list
(simple_expression (identifier))
(term (expression
(factor (term
(primary (numeric_literal))))
(identifier)))))))) (parameter_association
(pragma_argument_association (component_choice_list
(expression (identifier))))))
(relation (formal_subprogram_declaration
(simple_expression (formal_concrete_subprogram_declaration
(term (procedure_specification
(factor (identifier))
(primary (subprogram_default)))
(string_literal)))))))))))))) (formal_subprogram_declaration
(formal_concrete_subprogram_declaration
(function_specification
(identifier)
(result_profile
(identifier)))
(subprogram_default))))
(package_specification
(identifier)
(pragma_g
(identifier)
(pragma_argument_association
(expression
(term
(identifier))))
(pragma_argument_association
(expression
(term
(string_literal)))))))))

View File

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

View File

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

View File

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

View File

@ -17,56 +17,37 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(non_empty_declarative_part
(object_renaming_declaration
(identifier)
(identifier))
(object_renaming_declaration
(identifier)
(identifier)
(identifier))
(exception_renaming_declaration
(identifier)
(identifier))
(package_renaming_declaration
(identifier)
(identifier)
(identifier))
(subprogram_renaming_declaration
(procedure_specification (procedure_specification
(identifier))) (identifier)
(non_empty_declarative_part (formal_part
(declarative_item_pragma (parameter_specification_list
(renaming_declaration (parameter_specification
(object_renaming_declaration (identifier)
(identifier) (identifier)))))
(identifier)))) (identifier))
(declarative_item_pragma (generic_renaming_declaration
(renaming_declaration (identifier)
(object_renaming_declaration (identifier)))
(identifier) (handled_sequence_of_statements
(identifier) (statement
(identifier)))) (null_statement)))
(declarative_item_pragma (identifier))))
(renaming_declaration
(exception_renaming_declaration
(identifier)
(identifier))))
(declarative_item_pragma
(renaming_declaration
(package_renaming_declaration
(identifier)
(identifier)
(identifier))))
(declarative_item_pragma
(renaming_declaration
(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)))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(identifier)))))

View File

@ -11,37 +11,29 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (package_body
(package_body (identifier)
(identifier) (non_empty_declarative_part
(non_empty_declarative_part (body_stub
(declarative_item_pragma (subprogram_body_stub
(body_stub (overriding_indicator)
(subprogram_body_stub (procedure_specification
(overriding_indicator) (identifier))
(subprogram_specification (aspect_specification
(procedure_specification (aspect_mark_list
(identifier))) (aspect_association
(aspect_specification (identifier))))))
(aspect_mark_list (body_stub
(aspect_association (subprogram_body_stub
(aspect_mark (overriding_indicator)
(identifier)))))))) (function_specification
(declarative_item_pragma (identifier)
(body_stub (result_profile
(subprogram_body_stub (identifier)))
(overriding_indicator) (aspect_specification
(subprogram_specification (aspect_mark_list
(function_specification (aspect_association
(identifier) (identifier))))))))))
(parameter_and_result_profile
(result_profile
(identifier)))))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier)))))))))))))
================================================================================ ================================================================================
Separate packages Separate packages
@ -55,14 +47,12 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (package_body
(package_body (identifier)
(identifier) (non_empty_declarative_part
(non_empty_declarative_part (body_stub
(declarative_item_pragma (package_body_stub
(body_stub (identifier)))))))
(package_body_stub
(identifier)))))))))
================================================================================ ================================================================================
Separate protected Separate protected
@ -76,15 +66,13 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (package_body
(package_body (identifier)
(identifier) (non_empty_declarative_part
(non_empty_declarative_part (body_stub
(declarative_item_pragma (protected_body_stub
(body_stub (identifier))))
(protected_body_stub (identifier))))
(identifier)))))
(identifier)))))
================================================================================ ================================================================================
Separate task Separate task
@ -98,12 +86,10 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (package_body
(package_body (identifier)
(identifier) (non_empty_declarative_part
(non_empty_declarative_part (body_stub
(declarative_item_pragma (task_body_stub
(body_stub (identifier))))
(task_body_stub (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 While
================================================================================ ================================================================================
@ -14,44 +36,26 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (handled_sequence_of_statements
(identifier))) (statement
(handled_sequence_of_statements (loop_statement
(sequence_of_statements (iteration_scheme
(expression
(term
(identifier))))
(statement (statement
(compound_statement (exit_statement))
(loop_statement (statement
(iteration_scheme (exit_statement
(expression (expression
(relation (term
(simple_expression (identifier))
(term (relational_operator)
(factor (term
(primary (numeric_literal)))))))))))
(identifier))))))))
(sequence_of_statements
(statement
(simple_statement
(exit_statement)))
(statement
(simple_statement
(exit_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))))
================================================================================ ================================================================================
For loops For loops
@ -74,52 +78,37 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (handled_sequence_of_statements
(identifier))) (statement
(handled_sequence_of_statements (loop_statement
(sequence_of_statements (iteration_scheme
(iterator_specification
(identifier)
(identifier)
(identifier)
(tick)
(attribute_designator
(identifier))))
(statement (statement
(compound_statement (goto_statement
(loop_statement (identifier)))
(iteration_scheme (label
(iterator_specification (identifier))))
(identifier) (statement
(identifier) (loop_statement
(attribute_reference (iteration_scheme
(identifier) (iterator_specification
(tick) (identifier)
(attribute_designator (identifier)))
(identifier)))))
(sequence_of_statements
(statement
(simple_statement
(goto_statement
(identifier))))
(label
(identifier))))))
(statement (statement
(compound_statement (delay_relative_statement
(loop_statement (expression
(iteration_scheme (term
(iterator_specification (numeric_literal))))))))
(identifier) (identifier))))
(identifier)))
(sequence_of_statements
(statement
(simple_statement
(delay_statement
(delay_relative_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))))))
(identifier)))))
================================================================================ ================================================================================
Named loop Named loop
@ -137,24 +126,18 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (handled_sequence_of_statements
(identifier))) (statement
(handled_sequence_of_statements (loop_statement
(sequence_of_statements (loop_label
(identifier))
(statement (statement
(compound_statement (exit_statement
(loop_statement (identifier)))
(loop_label (identifier)))))))
(identifier))
(sequence_of_statements
(statement
(simple_statement
(exit_statement
(identifier)))))
(identifier))))))))))
================================================================================ ================================================================================
Return Return
@ -172,59 +155,35 @@ end F;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (function_specification
(subprogram_specification (identifier)
(function_specification (result_profile
(identifier) (identifier)))
(parameter_and_result_profile (handled_sequence_of_statements
(result_profile (statement
(simple_return_statement
(expression
(term
(identifier))))) (identifier)))))
(handled_sequence_of_statements (statement
(sequence_of_statements (extended_return_statement
(statement (extended_return_object_declaration
(simple_statement (identifier)
(simple_return_statement (identifier)
(expression (expression
(relation (term
(simple_expression (record_aggregate
(term (record_component_association_list
(factor (component_choice_list
(primary (identifier))
(identifier))))))))))
(statement
(compound_statement
(extended_return_statement
(extended_return_object_declaration
(identifier)
(return_subtype_indication
(subtype_indication
(identifier)))
(assign_value
(expression (expression
(relation (term
(simple_expression (numeric_literal))))))))
(term (handled_sequence_of_statements
(factor (statement
(primary (null_statement))))))
(aggregate (identifier))))
(record_aggregate
(record_component_association_list
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement))))))))))
(identifier)))))
================================================================================ ================================================================================
Procedure call Procedure call
@ -239,42 +198,28 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier)
(procedure_specification (formal_part
(parameter_specification_list
(parameter_specification
(identifier)
(identifier)))))
(handled_sequence_of_statements
(statement
(procedure_call_statement
(identifier) (identifier)
(non_empty_parameter_profile (actual_parameter_part
(formal_part (parameter_association
(parameter_specification_list (expression
(parameter_specification (term
(defining_identifier_list (numeric_literal))))
(identifier)) (parameter_association
(identifier))))))) (expression
(handled_sequence_of_statements (term
(sequence_of_statements (identifier))))))))
(statement (identifier))))
(simple_statement
(procedure_call_statement
(identifier)
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))))))
(identifier)))))
================================================================================ ================================================================================
Raise exception Raise exception
@ -290,28 +235,19 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (handled_sequence_of_statements
(statement
(raise_statement
(identifier))) (identifier)))
(handled_sequence_of_statements (statement
(sequence_of_statements (raise_statement
(statement (identifier)
(simple_statement (expression
(raise_statement (term
(identifier)))) (string_literal)))))))))
(statement
(simple_statement
(raise_statement
(identifier)
(expression
(relation
(simple_expression
(term
(factor
(primary
(string_literal))))))))))))))))
================================================================================ ================================================================================
Function calls Function calls
@ -327,44 +263,28 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (non_empty_declarative_part
(identifier))) (object_declaration
(non_empty_declarative_part (identifier)
(declarative_item_pragma (identifier)))
(object_declaration (handled_sequence_of_statements
(defining_identifier_list (statement
(identifier)) (assignment_statement
(subtype_indication (identifier)
(identifier))))) (expression
(handled_sequence_of_statements (term
(sequence_of_statements (function_call
(statement
(simple_statement
(assignment_statement
(identifier) (identifier)
(assign_value (actual_parameter_part
(expression (parameter_association
(relation (component_choice_list
(simple_expression (identifier))
(term (expression
(factor (term
(primary (numeric_literal))))))))))))))
(function_call
(identifier)
(actual_parameter_part
(parameter_association
(component_choice_list
(identifier))
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))))))))))))
================================================================================ ================================================================================
if statement if statement
@ -396,99 +316,56 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (handled_sequence_of_statements
(identifier))) (statement
(handled_sequence_of_statements (if_statement
(sequence_of_statements (expression
(term
(identifier))
(relational_operator)
(term
(numeric_literal))
(term
(identifier))
(relational_operator)
(term
(numeric_literal)))
(statement (statement
(compound_statement (block_statement
(if_statement (handled_sequence_of_statements
(expression (statement
(relation (null_statement)))))
(simple_expression (elsif_statement_item
(term (expression
(factor (term
(primary (identifier))
(identifier))))) (relational_operator)
(relational_operator) (term
(simple_expression (numeric_literal)))
(term (statement
(factor (block_statement
(primary (non_empty_declarative_part
(numeric_literal)))))) (object_declaration
(relation (identifier)
(simple_expression (identifier)))
(term (handled_sequence_of_statements
(factor
(primary
(identifier)))))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(sequence_of_statements
(statement (statement
(compound_statement (null_statement))
(block_statement (exception_handler
(handled_sequence_of_statements (exception_choice_list
(sequence_of_statements (exception_choice
(statement (identifier)))
(simple_statement
(null_statement)))))))))
(elsif_statement_item
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(sequence_of_statements
(statement (statement
(compound_statement (null_statement)))))))
(block_statement (statement
(non_empty_declarative_part (block_statement
(declarative_item_pragma (handled_sequence_of_statements
(object_declaration (statement
(defining_identifier_list (null_statement))))))))
(identifier)) (identifier))))
(subtype_indication
(identifier)))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement))))
(exception_handler_list
(exception_handler
(exception_choice_list
(exception_choice
(identifier)))
(sequence_of_statements
(statement
(simple_statement
(null_statement))))))))))))
(sequence_of_statements
(statement
(compound_statement
(block_statement
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement))))))))))))))
(identifier)))))
================================================================================ ================================================================================
Case statement Case statement
@ -508,75 +385,45 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (handled_sequence_of_statements
(identifier))) (statement
(handled_sequence_of_statements (case_statement
(sequence_of_statements (expression
(statement (term
(compound_statement (function_call
(case_statement (identifier)
(expression (actual_parameter_part
(relation (parameter_association
(simple_expression (component_choice_list
(identifier))
(expression
(term (term
(factor (numeric_literal))))))))
(primary (case_statement_alternative
(function_call (discrete_choice_list
(identifier) (discrete_choice
(actual_parameter_part (range_g
(parameter_association (term
(component_choice_list (character_literal))
(identifier)) (term
(expression (character_literal)))))
(relation (statement
(simple_expression (null_statement)))
(term (case_statement_alternative
(factor (discrete_choice_list
(primary (discrete_choice
(numeric_literal)))))))))))))))) (expression
(case_statement_alternative (term
(discrete_choice_list (character_literal))))
(discrete_choice (discrete_choice
(range_g (expression
(simple_expression (term
(term (character_literal)))))
(factor (statement
(primary (null_statement)))))))))
(character_literal)))))
(simple_expression
(term
(factor
(primary
(character_literal))))))))
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(case_statement_alternative
(discrete_choice_list
(discrete_choice
(expression
(relation
(simple_expression
(term
(factor
(primary
(character_literal))))))))
(discrete_choice
(expression
(relation
(simple_expression
(term
(factor
(primary
(character_literal)))))))))
(sequence_of_statements
(statement
(simple_statement
(null_statement))))))))))))))
================================================================================ ================================================================================
Allocators Allocators
@ -592,64 +439,38 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (handled_sequence_of_statements
(identifier))) (statement
(handled_sequence_of_statements (assignment_statement
(sequence_of_statements (identifier)
(statement (expression
(simple_statement (term
(assignment_statement (allocator
(identifier) (identifier))))))
(assign_value (statement
(assignment_statement
(identifier)
(expression
(term
(allocator
(subpool_specification
(identifier)
(identifier))
(qualified_expression
(identifier)
(tick)
(expression (expression
(relation (term
(simple_expression (record_aggregate
(term (record_component_association_list
(factor (component_choice_list
(primary (identifier))
(allocator (expression
(subtype_indication_paren_constraint (term
(identifier))))))))))))) (numeric_literal)))))))))))))))))
(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)))))))))))))))))))))))))))))))))))
================================================================================ ================================================================================
Filtered for loops Filtered for loops
@ -666,38 +487,25 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (handled_sequence_of_statements
(identifier))) (statement
(handled_sequence_of_statements (loop_statement
(sequence_of_statements (iteration_scheme
(iterator_specification
(identifier)
(identifier)
(iterator_filter
(expression
(term
(identifier))
(relational_operator)
(term
(numeric_literal))))))
(statement (statement
(compound_statement (null_statement))))))))
(loop_statement
(iteration_scheme
(iterator_specification
(identifier)
(identifier)
(iterator_filter
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))))))))))
================================================================================ ================================================================================
Assignment target name Assignment target name
@ -713,71 +521,42 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (subprogram_body
(subprogram_body (procedure_specification
(subprogram_specification (identifier))
(procedure_specification (handled_sequence_of_statements
(identifier))) (statement
(handled_sequence_of_statements (assignment_statement
(sequence_of_statements (identifier)
(statement (function_call
(simple_statement (identifier)
(assignment_statement (actual_parameter_part
(parameter_association
(expression
(term
(identifier))))))
(expression
(term
(target_name))
(binary_adding_operator)
(term
(numeric_literal)))))
(statement
(assignment_statement
(identifier)
(function_call
(identifier)
(actual_parameter_part
(parameter_association
(expression
(term
(identifier))))))
(expression
(term
(function_call
(identifier) (identifier)
(function_call (actual_parameter_part
(identifier) (parameter_association
(actual_parameter_part (expression
(parameter_association (term
(expression (target_name))))))))))))))
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(target_name))))
(binary_adding_operator)
(term
(factor
(primary
(numeric_literal)))))))))))
(statement
(simple_statement
(assignment_statement
(identifier)
(function_call
(identifier)
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(function_call
(identifier)
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(target_name))))))))))))))))))))))))))

View File

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

View File

@ -34,105 +34,71 @@ end P;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (package_body
(package_body (identifier)
(identifier) (non_empty_declarative_part
(non_empty_declarative_part (object_declaration
(declarative_item_pragma (single_task_declaration
(object_declaration (identifier)
(single_task_declaration (task_definition
(entry_declaration
(identifier) (identifier)
(task_definition (formal_part
(task_item (parameter_specification_list
(entry_declaration (parameter_specification
(identifier) (identifier)
(formal_part (identifier)))))
(parameter_specification_list (entry_declaration
(parameter_specification (identifier))
(defining_identifier_list (identifier))))
(identifier)) (task_body
(identifier)))))) (identifier)
(task_item (non_empty_declarative_part
(entry_declaration (object_declaration
(identifier))) (identifier)
(identifier))))) (identifier)))
(declarative_item_pragma (handled_sequence_of_statements
(proper_body (statement
(task_body (accept_statement
(identifier) (identifier)
(non_empty_declarative_part (formal_part
(declarative_item_pragma (parameter_specification_list
(object_declaration (parameter_specification
(defining_identifier_list (identifier)
(identifier)) (identifier))))
(subtype_indication
(identifier)))))
(handled_sequence_of_statements (handled_sequence_of_statements
(sequence_of_statements (statement
(statement (null_statement)))
(compound_statement (identifier)))
(accept_statement (statement
(identifier) (timed_entry_call
(formal_part (entry_call_alternative
(parameter_specification_list (procedure_call_statement
(parameter_specification (identifier)
(defining_identifier_list (actual_parameter_part
(identifier)) (parameter_association
(identifier)))) (expression
(handled_sequence_of_statements (term
(sequence_of_statements (numeric_literal)))))))
(statement (delay_alternative
(simple_statement (delay_relative_statement
(null_statement))))) (expression
(identifier)))) (term
(statement (numeric_literal)))))))
(compound_statement (statement
(select_statement (conditional_entry_call
(timed_entry_call (entry_call_alternative
(entry_call_alternative (procedure_call_statement
(procedure_call_statement (identifier)
(identifier) (actual_parameter_part
(actual_parameter_part (parameter_association
(parameter_association (expression
(expression (term
(relation (numeric_literal)))))))
(simple_expression (statement
(term (null_statement)))))
(factor (identifier)))
(primary (identifier))))
(numeric_literal)))))))))))
(delay_alternative
(delay_statement
(delay_relative_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))
(statement
(compound_statement
(select_statement
(conditional_entry_call
(entry_call_alternative
(procedure_call_statement
(identifier)
(actual_parameter_part
(parameter_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))
(sequence_of_statements
(statement
(simple_statement
(null_statement))))))))))
(identifier)))))
(identifier)))))
================================================================================ ================================================================================
Task types Task types
@ -152,42 +118,32 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (package_body
(package_body (identifier)
(identifier) (non_empty_declarative_part
(non_empty_declarative_part (full_type_declaration
(declarative_item_pragma (task_type_declaration
(type_declaration (identifier)))
(full_type_declaration (full_type_declaration
(task_type_declaration (task_type_declaration
(identifier))))) (identifier)
(declarative_item_pragma (task_definition
(type_declaration (entry_declaration
(full_type_declaration (identifier)
(task_type_declaration (formal_part
(identifier) (parameter_specification_list
(task_definition (parameter_specification
(task_item (identifier)
(entry_declaration (identifier)))))
(identifier) (identifier))))
(formal_part (full_type_declaration
(parameter_specification_list (task_type_declaration
(parameter_specification (identifier)
(defining_identifier_list (identifier)
(identifier)) (task_definition
(identifier)))))) (entry_declaration
(identifier)))))) (identifier))
(declarative_item_pragma (identifier))))))))
(type_declaration
(full_type_declaration
(task_type_declaration
(identifier)
(identifier)
(task_definition
(task_item
(entry_declaration
(identifier)))
(identifier)))))))))))
================================================================================ ================================================================================
asynchronous select asynchronous select
@ -212,53 +168,36 @@ end;
(compilation (compilation
(compilation_unit (compilation_unit
(proper_body (package_body
(package_body (identifier)
(identifier) (non_empty_declarative_part
(non_empty_declarative_part (task_body
(declarative_item_pragma (identifier)
(proper_body (handled_sequence_of_statements
(task_body (statement
(identifier) (asynchronous_select
(handled_sequence_of_statements (triggering_alternative
(sequence_of_statements (procedure_call_statement
(statement (function_call
(compound_statement (identifier)
(select_statement (actual_parameter_part
(asynchronous_select (parameter_association
(triggering_alternative (expression
(procedure_call_statement (term
(function_call (numeric_literal)))))))
(identifier) (statement
(actual_parameter_part (null_statement)))
(parameter_association (statement
(expression (procedure_call_statement
(relation (identifier))))))))))
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(sequence_of_statements
(statement
(simple_statement
(procedure_call_statement
(identifier))))))))))))))))))
(compilation_unit (compilation_unit
(statement (statement
(simple_statement (null_statement)))
(null_statement))))
(compilation_unit (compilation_unit
(statement (statement
(simple_statement (procedure_call_statement
(procedure_call_statement (identifier))))
(identifier)))))
(compilation_unit (compilation_unit
(statement (statement
(simple_statement (procedure_call_statement
(procedure_call_statement (identifier)))))
(identifier))))))

View File

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