< Ada Programming < Keywords

Ada. Time-tested, safe and secure.

Use clause

At library level

This use clause make the content of a package immediately visible.

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 type of use clause. However it is needed to resolve a name clash between the packages which are imported and the package currently compiled.

At declaration level

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

with Ada.Text_IO;

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

Representation clause

For attributes

type Day_Of_Month is range 1 .. 31;            
for  Day_Of_Month'Size      use 8;  -- 8 bits
for  Day_Of_Month'Alignment use 1;  -- 1 byte

For records

type Device_Register is
    record
       Ready : Status_Flag;
       Error : Error_Flag;
       Data  : Unsigned_16;
    end record;

for  Device_Register use
    record
       Ready at 0 range  0 .. 0;
       Error at 0 range  1 .. 1;
       -- Reserved bits
       Data  at 0 range 16 .. 31;
    end record;

For enumerations

type Status_Flag is  (Ready, Wait);
for  Status_Flag use (Ready => 0, Wait => 1);

See also

Wikibook

Ada Reference Manual

Ada Quality and Style Guide

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 pragma terminate
body private then
if procedure type
case in protected (Ada 95)
constant interface (Ada 2005) until (Ada 95)
is raise use
declare range
delay limited record when
delta loop rem while
digits renames with
do mod requeue (Ada 95) xor
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.