Ada Programming/Keywords/use

From Wikibooks, the open-content textbooks collection

Jump to: navigation, search

Ada Lovelace 1838.jpg

Contents


[edit] Use clause

[edit] 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.

[edit] 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;

[edit] 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;

[edit] Representation clause

[edit] 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

[edit] 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;

[edit] For enumerations

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

[edit] See also

[edit] Wikibook

[edit] Ada Reference Manual

[edit] 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 subtype
all others synchronized (Ada 2005)
and for out
array function overriding (Ada 2005) tagged (Ada 95)
at task
generic package terminate
begin goto pragma then
body private type
if procedure
case in protected (Ada 95) until (Ada 95)
constant interface (Ada 2005) use
is raise
declare range when
delay limited record while
delta loop rem with
digits renames
do mod requeue (Ada 95) xor