================================================================================ 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))))))