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