tree-sitter-ada/corpus/subprograms.txt
2022-10-24 15:56:08 +02:00

709 lines
22 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;
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 procedures
================================================================================
package P is
procedure B is abstract;
overriding procedure C is abstract with Inline;
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(package_specification
(name
(identifier))
(subprogram_declaration
(subprogram_specification
(procedure_specification
(name
(identifier)))))
(subprogram_declaration
(overriding_indicator)
(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
(record_aggregate
(record_component_association_list
(record_component_association
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))
(membership_choice_list
(membership_choice
(simple_expression
(term
(factor
(primary
(name
(identifier)))))))))))))))))
================================================================================
Expression function declare
================================================================================
function F2 (A : Integer) return Boolean
is (declare B : constant Integer := A + 1; begin B);
--------------------------------------------------------------------------------
(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
(declare_expression
(declare_item
(object_declaration
(defining_identifier_list
(identifier))
(subtype_indication
(name
(identifier)))
(assign_value
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier)))))
(binary_adding_operator)
(term
(factor
(primary
(numeric_literal))))))))))
(expression
(relation
(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
(record_aggregate
(record_component_association_list
(record_component_association
(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
(record_aggregate
(record_component_association_list
(record_component_association
(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
(record_aggregate
(record_component_association_list
(record_component_association
(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))))))))))))))))))))))))
================================================================================
Expression function case
================================================================================
function F (A : Integer) return Boolean
is (case A + 1 is
when 0 .. 1 | 3 .. 4 => True,
when others => 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
(case_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier)))))
(binary_adding_operator)
(term
(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
(name
(identifier)))))))))
(case_expression_alternative
(discrete_choice_list
(discrete_choice))
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier)))))))))))))))
================================================================================
Expression function quantified
================================================================================
function F (A : My_Array) return Boolean
is (for some E of A => E = 1);
--------------------------------------------------------------------------------
(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
(quantified_expression
(quantifier)
(iterator_specification
(identifier)
(name
(identifier)))
(assoc_expression
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier))))))
(relational_operator)
(simple_expression
(term
(factor
(primary
(numeric_literal)))))))))))))
================================================================================
Operators
================================================================================
overriding function "<" (Left, Right : My_Int) return Boolean is
begin
return False;
end "<";
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(proper_body
(subprogram_body
(overriding_indicator)
(subprogram_specification
(function_specification
(string_literal)
(parameter_and_result_profile
(formal_part
(parameter_specification_list
(parameter_specification
(defining_identifier_list
(identifier)
(identifier))
(name
(identifier)))))
(result_profile
(name
(identifier))))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(simple_return_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(name
(identifier)))))))))))))
(string_literal)))))