tree-sitter-ada/corpus/generics.txt
Emmanuel Briot 0a52f6df01 various attempts to simplify grammar
Fixes handing of expression functions (for which the expression was
 identified as an aggregate)
Move conditional expressions out of 'aggregate', to conform with ARM and
 resolve the above amgiguity
Inline expression_list, which was resulting in a conflict with a
 record_component_association.
2022-12-07 18:32:50 +01:00

114 lines
4.0 KiB
Plaintext

================================================================================
generic package
================================================================================
generic
A : Integer := 1;
type T (<>) is abstract tagged limited private or use My_Tagged;
type I;
with package Pro is new My_Pkg (F => 1, others => <>);
with procedure Proc is null;
with function Func return Boolean is <>;
package P is
pragma Compile_Time_Error (True, "an exception");
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(generic_declaration
(generic_package_declaration
(generic_formal_part
(generic_formal_parameter_declaration
(formal_object_declaration
(defining_identifier_list
(identifier))
(name
(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))
(name
(identifier)))))
(generic_formal_parameter_declaration
(formal_type_declaration
(formal_incomplete_type_declaration
(identifier))))
(generic_formal_parameter_declaration
(formal_package_declaration
(identifier)
(name
(function_call
(name
(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
(name
(identifier))))
(subprogram_default))))
(generic_formal_parameter_declaration
(formal_subprogram_declaration
(formal_concrete_subprogram_declaration
(subprogram_specification
(function_specification
(name
(identifier))
(parameter_and_result_profile
(result_profile
(name
(identifier))))))
(subprogram_default)))))
(package_specification
(name
(identifier))
(pragma_g
(identifier)
(pragma_argument_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier)))))))))
(pragma_argument_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(string_literal))))))))))))))