tree-sitter-ada/test/corpus/protected.txt
2022-12-09 11:02:26 +01:00

167 lines
6.4 KiB
Plaintext

================================================================================
protected objects
================================================================================
package body P is
protected Obj is
procedure Proc;
function Func return Boolean;
entry E;
entry E2 (Color)(A : Integer);
private
Field : Integer;
end Obj;
protected body Obj is
procedure Proc is begin abort T; end;
function Func return Boolean is begin return False; end;
entry E when Field > 0 is
begin
requeue E with abort;
end E;
entry E2 (for C in Color)(A : Integer) when True is
begin
null;
end E2;
end Obj;
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(object_declaration
(single_protected_declaration
(identifier)
(protected_definition
(protected_operation_declaration
(subprogram_declaration
(subprogram_specification
(procedure_specification
(identifier)))))
(protected_operation_declaration
(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)
(discrete_subtype_definition
(subtype_indication
(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)
(protected_operation_item
(subprogram_body
(subprogram_specification
(procedure_specification
(identifier)))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(abort_statement
(identifier))))))))
(protected_operation_item
(subprogram_body
(subprogram_specification
(function_specification
(identifier)
(parameter_and_result_profile
(result_profile
(identifier)))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(simple_return_statement
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier))))))))))))))
(protected_operation_item
(entry_body
(identifier)
(entry_barrier
(expression
(relation
(simple_expression
(term
(factor
(primary
(identifier)))))
(relational_operator)
(simple_expression
(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)))))))))