tree-sitter-ada/corpus/subprograms.txt
2022-10-21 18:51:04 +02:00

449 lines
14 KiB
Plaintext

================================================================================
null procedure
================================================================================
package P is
procedure A is null;
overriding procedure B is null;
procedure B is null with Inline;
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(package_specification
(name
(identifier))
(null_procedure_declaration
(procedure_specification
(name
(identifier))))
(null_procedure_declaration
(overriding_indicator)
(procedure_specification
(name
(identifier))))
(null_procedure_declaration
(procedure_specification
(name
(identifier)))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier)))))))))
================================================================================
procedures
================================================================================
package P is
procedure A (P1, P2 : Integer; P3 : Float)
with Inline;
procedure B is abstract;
procedure C is abstract with Inline;
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(package_specification
(name
(identifier))
(subprogram_declaration
(subprogram_specification
(procedure_specification
(name
(identifier))
(non_empty_parameter_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier)
(identifier))
(name
(identifier)))
(parameter_specification
(defining_identifier_list
(identifier))
(name
(identifier))))))))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier))))))
(abstract_subprogram_declaration
(subprogram_specification
(procedure_specification
(name
(identifier)))))
(abstract_subprogram_declaration
(subprogram_specification
(procedure_specification
(name
(identifier))))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier)))))))))
================================================================================
functions
================================================================================
package P is
function F (A, B : Integer) return not null access Integer
with Inline, Convention => C;
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(package_specification
(name
(identifier))
(subprogram_declaration
(subprogram_specification
(function_specification
(name
(identifier))
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier)
(identifier))
(name
(identifier)))))
(result_profile
(access_definition
(null_exclusion)
(name
(identifier)))))))
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier)))
(aspect_association
(aspect_mark
(identifier))
(aspect_definition
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))))))))))))
================================================================================
subprogram body
================================================================================
package body P is
procedure A (B : Integer) is
V : Integer;
begin
null;
end A;
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(proper_body
(package_body
(name
(identifier))
(non_empty_declarative_part
(declarative_item_pragma
(proper_body
(subprogram_body
(subprogram_specification
(procedure_specification
(name
(identifier))
(non_empty_parameter_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(name
(identifier))))))))
(non_empty_declarative_part
(declarative_item_pragma
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(name
(identifier))))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(name
(identifier))))))))))
================================================================================
expression function membership
================================================================================
function F2 (A : Integer) return Boolean
is (A not in Small_Integer);
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(expression_function_declaration
(function_specification
(name
(identifier))
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(name
(identifier)))))
(result_profile
(name
(identifier)))))
(aggregate
(array_aggregate
(positional_array_aggregate
(expression_list
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))
(membership_choice_list
(membership_choice
(simple_expression
(term
(factor
(primary
(name
(identifier)))))))))))))))))
================================================================================
Expression function raise
================================================================================
function F3 return Boolean
is (raise Constraint_Error);
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(expression_function_declaration
(function_specification
(name
(identifier))
(parameter_and_result_profile
(result_profile
(name
(identifier)))))
(aggregate
(array_aggregate
(positional_array_aggregate
(expression_list
(expression
(relation
(raise_expression
(name
(identifier))))))))))))
================================================================================
Expression function simple
================================================================================
function F4 return Boolean is (True);
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(expression_function_declaration
(function_specification
(name
(identifier))
(parameter_and_result_profile
(result_profile
(name
(identifier)))))
(aggregate
(array_aggregate
(positional_array_aggregate
(expression_list
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier)))))))))))))))
================================================================================
Expression function if
================================================================================
function F (A : Integer) return Boolean
is (if A = 0 or A = 1 then True else False);
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(expression_function_declaration
(function_specification
(name
(identifier))
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(name
(identifier)))))
(result_profile
(name
(identifier)))))
(aggregate
(conditional_expression
(if_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal))))))
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))))))))))
================================================================================
Expression function if extra parenthesis
================================================================================
function F5 (A : Integer) return Boolean
is ((if A = 0 then True else False));
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(expression_function_declaration
(function_specification
(name
(identifier))
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier))
(name
(identifier)))))
(result_profile
(name
(identifier)))))
(aggregate
(array_aggregate
(positional_array_aggregate
(expression_list
(expression
(relation
(simple_expression
(term
(factor
(primary
(aggregate
(conditional_expression
(if_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))))
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))))))))))))))))))))