There are two versions of use clauses, a use_package_clause and a use_type_clause.
This use_package_clause makes the content of apackage 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.
withAda.Text_IO;useAda.Text_IO;procedureHelloisbeginPut_Line("Hello, world!"); New_Line; Put_Line("I am an Ada program with package use.");endHello;
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.
The effect is the same as above, but the scope is the directly enclosing declaration region.
withAda.Text_IO;procedureHelloisuseAda.Text_IO;beginPut_Line("Hello, world!"); New_Line; Put_Line("I am an Ada program with package use.");endHello;
Use type clauses come in two versions.
usetypeType_Name;
makes the operators of the type directly visible.
usealltypeType_Name;
makes the primitive operations of the type directly visible.
The keywordsfor,use andat are used for representation clauses.
A record representation clause specifies theLayoutaspect of a record.
An enumeration representation clause specifies theCodingaspect of an enumeration type.
SeeAda Programming/Representation_clauses.
| 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 | |||