Ada Programming/Keywords/use


Ada. Time-tested, safe and secure.
Ada. Time-tested, safe and secure.

Use clause

edit

There are two versions of use clauses, a use_package_clause and a use_type_clause.

At library level

edit

This use_package_clause makes the content of a package directly visible. If applied on the library level, its scope is the complete library unit.

A use clause never hides anything that is already directly visible without it. All use clauses in effect in a certain scope act on the same level: Two homographs in different packages must still be named as selected components.

with Ada.Text_IO;   use Ada.Text_IO;

procedure Hello is
begin
   Put_Line("Hello, world!");
   New_Line;
   Put_Line("I am an Ada program with package use.");
end Hello;

If readability is your main concern then you should avoid this kind of use clause. Either make it more local or use a use_type_clause.

At declaration level

edit

The effect is the same as above, but the scope is the directly enclosing declaration region.

File: hello_world_3.adb (view, plain text, download page, browse all)
with Ada.Text_IO;

procedure Hello is
   use Ada.Text_IO;
begin
   Put_Line("Hello, world!");
   New_Line;
   Put_Line("I am an Ada program with package use.");
end Hello;

For types

edit

Use type clauses come in two versions.

use type Type_Name;

makes the operators of the type directly visible.

use all type Type_Name;

makes the primitive operations of the type directly visible.

Representation clauses

edit

The keywords for, use and at are used for representation clauses.

A record representation clause specifies the Layout aspect of a record.

An enumeration representation clause specifies the Coding aspect of an enumeration type.

See Ada Programming/Representation_clauses.

See also

edit

Wikibook

edit

Ada Reference Manual

edit

Ada Quality and Style Guide

edit


Ada Keywords
abort else new return
abs elsif not reverse
abstract (Ada 95) end null
accept entry select
access exception of separate
aliased (Ada 95) exit or some (Ada 2012)
all others subtype
and for out synchronized (Ada 2005)
array function overriding (Ada 2005)
at tagged (Ada 95)
generic package task
begin goto parallel (Ada 2022) terminate
body pragma then
if private type
case in procedure
constant interface (Ada 2005) protected (Ada 95) until (Ada 95)
is use
declare raise
delay limited range when
delta loop record while
digits rem with
do mod renames
requeue (Ada 95) xor