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

216 lines
5.7 KiB
Plaintext

================================================================================
with clauses
================================================================================
with Ada.Text_IO, System; -- multiple names, and fully qualified
limited with Ada; -- limited with
private with Ada;
limited private with Ada;
use Ada.Text_IO, System;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(with_clause
(identifier)
(identifier)
(identifier)))
(comment)
(compilation_unit
(with_clause
(identifier)))
(comment)
(compilation_unit
(with_clause
(identifier)))
(compilation_unit
(with_clause
(identifier)))
(compilation_unit
(use_clause
(identifier)
(identifier)
(identifier))))
================================================================================
Case insensitive
================================================================================
PACkaGe P1 Is
enD;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(package_specification
(identifier))))
================================================================================
multiple compilation units
================================================================================
package P1 is
package Nested is
end Nested;
end P1;
private package Child.P2 is -- comment to be ignored
private
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(package_specification
(identifier)
(package_specification
(identifier)
(identifier))
(identifier)))
(compilation_unit
(package_specification
(identifier)
(identifier)
(comment))))
================================================================================
body
================================================================================
package body Child.P2 is
package body Nested is
begin
null;
end Nested;
begin
null;
end Child.P2;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(proper_body
(package_body
(identifier)
(identifier)
(non_empty_declarative_part
(declarative_item_pragma
(proper_body
(package_body
(identifier)
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(identifier)))))
(handled_sequence_of_statements
(sequence_of_statements
(statement
(simple_statement
(null_statement)))))
(identifier)
(identifier)))))
================================================================================
separate
================================================================================
separate (Child) package body P2 is
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(subunit
(identifier)
(proper_body
(package_body
(identifier))))))
================================================================================
private types
================================================================================
package P is
type A is private;
type B is abstract synchronized new C with private;
type C is abstract tagged limited private with Size => 8;
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(package_specification
(identifier)
(type_declaration
(private_type_declaration
(identifier)))
(type_declaration
(private_extension_declaration
(identifier)
(subtype_indication
(identifier))))
(type_declaration
(private_type_declaration
(identifier)
(aspect_specification
(aspect_mark_list
(aspect_association
(aspect_mark
(identifier))
(aspect_definition
(expression
(relation
(simple_expression
(term
(factor
(primary
(numeric_literal))))))))))))))))
================================================================================
incomplete types
================================================================================
package P is
private
type I;
type R (A : Integer);
type R2 (<>);
type T is tagged;
end;
--------------------------------------------------------------------------------
(compilation
(compilation_unit
(package_specification
(identifier)
(type_declaration
(incomplete_type_declaration
(identifier)))
(type_declaration
(incomplete_type_declaration
(identifier)
(discriminant_part
(known_discriminant_part
(discriminant_specification_list
(discriminant_specification
(defining_identifier_list
(identifier))
(identifier)))))))
(type_declaration
(incomplete_type_declaration
(identifier)
(discriminant_part
(unknown_discriminant_part))))
(type_declaration
(incomplete_type_declaration
(identifier))))))