Ada Programming/Keywords/use

From Wikibooks, open books for an open world
Jump to navigation Jump to search

float

Use clause[edit]

At library level[edit]

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

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]

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

For attributes[edit]

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

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

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

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