|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7168 (0x1c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Slot, seg_026564, seg_026ce0
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
-------------------------------------------------------------------------------
with Umps_Defs;
package Slot is
type Element is private;
type Kind is (Integer, String, Character, Boolean, Void);
function Make (The_Variable : Standard.String; With_Kind : Kind)
return Element;
-- make an element with empty value
function Make (The_Variable : Standard.String;
With_Value : Standard.Integer) return Element;
function Make (The_Variable : Standard.String; With_Value : Standard.String)
return Element;
function Make (The_Variable : Standard.String;
With_Value : Standard.Character) return Element;
function Make (The_Variable : Standard.String;
With_Value : Standard.Boolean) return Element;
-- make an element with a specific value
function Name_Of (The_Element : Element) return Standard.String;
function ind_Of (The_Element : Element) return Kind;
-- used to avoid raising the Illegal_Access_Error exception
function Is_Empty_Value (The_Element : Element) return Standard.Boolean;
-- used to avoid raising the Empty_Value_Error exception
function Value_Of (The_Element : Element) return Standard.String;
function Value_Of (The_Element : Element) return Standard.Integer;
function Value_Of (The_Element : Element) return Standard.Character;
function Value_Of (The_Element : Element) return Standard.Boolean;
-- Empty_Value_Error will be raises if Is_Empty_Value (The_Element) is true.
-- Illegal_Access_Error is raised when an illegal access on value is trying
-- (ie. accessing for an Integer value when the element is a String).
Illegal_Access_Error : exception;
-- raised by accessing values when the element have not the desired value
Empty_Value_Error : exception;
-- raised by accessing values when the element is empty -- (ie. Is_Empty_Value is true)
type Fields is (On_Name, On_Kind, On_Value, On_None);
generic
Field : Fields := On_Value;
function Is_Equal (Left, Right : Element) return Standard.Boolean;
generic
Field : Fields := On_Value;
function Is_Less (Left, Right : Element) return Standard.Boolean;
generic
Field : Fields := On_Value;
function Is_Most (Left, Right : Element) return Standard.Boolean;
-- Fields
-- Name : Name_Of (Left) <op> Name_Of (Right)
-- Kind : Name and Kind_Of( Left) <op> Kind_Of (Right)
-- Value : Name and Kind and Value_Of (Left) <op> Value_of (Right)
function Image (The_Element : Element) return Standard.String;
procedure Display (The_Element : Element;
String_Before : Standard.String := "");
-------------------------------------------------------------------------------
private
type Value (Is_Kind_Of : Kind := Void) is
record
case Is_Kind_Of is
when String =>
String : Umps_Defs.String := (others => Ascii.Nul);
when Integer =>
Integer : Standard.Integer := 0;
when Character =>
Character : Standard.Character := Ascii.Nul;
when Boolean =>
Boolean : Standard.Boolean := False;
when Void =>
Void : Standard.Character := Ascii.Nul;
end case;
end record;
type Element is
record
The_Name : Umps_Defs.Name := Umps_Defs.Null_Name;
The_Kind : Kind := Void;
Empty : Standard.Boolean := True;
The_Value : Value;
end record;
end Slot;
-------------------------------------------------------------------------------
nblk1=6
nid=5
hdr6=a
[0x00] rec0=1c rec1=00 rec2=01 rec3=01a
[0x01] rec0=00 rec1=00 rec2=02 rec3=002
[0x02] rec0=12 rec1=00 rec2=04 rec3=002
[0x03] rec0=1b rec1=00 rec2=06 rec3=09a
[0x04] rec0=1c rec1=00 rec2=03 rec3=000
[0x05] rec0=09 rec1=00 rec2=04 rec3=000
tail 0x21520436683aa678de73e 0x42a00088462063c03
Free Block Chain:
0x5: 0000 00 00 00 1e 80 1b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆ ----------┆