|
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: 21504 (0x5400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Slot, seg_026565, seg_026d20
└─⟦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 Text_Io; with Wild_String; package body Slot is --------------------------------------------------------------------------- function Make (The_Variable : Standard.String; With_Kind : Kind) return Element is The_Element : Element; begin The_Element.The_Name := Umps_Defs.Normalize (The_Variable); The_Element.The_Kind := With_Kind; The_Element.Empty := True; case (With_Kind) is when Integer => The_Element.The_Value := Value'(Is_Kind_Of => Integer, Integer => 0); when String => The_Element.The_Value := Value'(Is_Kind_Of => String, String => (others => Ascii.Nul)); when Character => The_Element.The_Value := Value'(Is_Kind_Of => Character, Character => Ascii.Nul); when Boolean => The_Element.The_Value := Value'(Is_Kind_Of => Boolean, Boolean => False); when Void => The_Element.The_Value := Value'(Is_Kind_Of => Void, Void => Ascii.Nul); end case; return The_Element; end Make; --------------------------------------------------------------------------- function Make (The_Variable : Standard.String; With_Value : Standard.Integer) return Element is The_Element : Element; begin The_Element.The_Name := Umps_Defs.Normalize (The_Variable); The_Element.The_Kind := Integer; The_Element.Empty := False; The_Element.The_Value := Value'(Is_Kind_Of => Integer, Integer => With_Value); return The_Element; end Make; -------------------------------------------------------------------------- function Make (The_Variable : Standard.String; With_Value : Standard.String) return Element is The_Element : Element; A_String : Umps_Defs.String; begin The_Element.The_Name := Umps_Defs.Normalize (The_Variable); A_String := Umps_Defs.Normalize (With_Value); The_Element.The_Kind := String; The_Element.Empty := False; The_Element.The_Value := Value' (Is_Kind_Of => String, String => A_String); return The_Element; end Make; --------------------------------------------------------------------------- function Make (The_Variable : Standard.String; With_Value : Standard.Character) return Element is The_Element : Element; begin The_Element.The_Name := Umps_Defs.Normalize (The_Variable); The_Element.The_Kind := Character; The_Element.Empty := False; The_Element.The_Value := Value'(Is_Kind_Of => Character, Character => With_Value); return The_Element; end Make; --------------------------------------------------------------------------- function Make (The_Variable : Standard.String; With_Value : Standard.Boolean) return Element is The_Element : Element; begin The_Element.The_Name := Umps_Defs.Normalize (The_Variable); The_Element.The_Kind := Boolean; The_Element.Empty := False; The_Element.The_Value := Value'(Is_Kind_Of => Boolean, Boolean => With_Value); return The_Element; end Make; --------------------------------------------------------------------------- function Name_Of (The_Element : Element) return Standard.String is begin return Umps_Defs.Denormalize (The_Element.The_Name); end Name_Of; --------------------------------------------------------------------------- function Kind_Of (The_Element : Element) return Kind is begin return The_Element.The_Kind; end Kind_Of; --------------------------------------------------------------------------- function Is_Empty_Value (The_Element : Element) return Standard.Boolean is begin return The_Element.Empty; end Is_Empty_Value; --------------------------------------------------------------------------- function Value_Of (The_Element : Element) return Standard.String is begin if (Is_Empty_Value (The_Element)) then raise Empty_Value_Error; end if; if (Kind_Of (The_Element) /= String) then raise Illegal_Access_Error; end if; return Umps_Defs.Denormalize (The_Element.The_Value.String); end Value_Of; --------------------------------------------------------------------------- function Value_Of (The_Element : Element) return Standard.Integer is begin if (Is_Empty_Value (The_Element)) then raise Empty_Value_Error; end if; if (Kind_Of (The_Element) /= Integer) then raise Illegal_Access_Error; end if; return The_Element.The_Value.Integer; end Value_Of; --------------------------------------------------------------------------- function Value_Of (The_Element : Element) return Standard.Character is begin if (Is_Empty_Value (The_Element)) then raise Empty_Value_Error; end if; if (Kind_Of (The_Element) /= Character) then raise Illegal_Access_Error; end if; return The_Element.The_Value.Character; end Value_Of; --------------------------------------------------------------------------- function Value_Of (The_Element : Element) return Standard.Boolean is begin if (Is_Empty_Value (The_Element)) then raise Empty_Value_Error; end if; if (Kind_Of (The_Element) /= Boolean) then raise Illegal_Access_Error; end if; return The_Element.The_Value.Boolean; end Value_Of; --------------------------------------------------------------------------- function Value_Part (The_Element : Element) return Value is begin return The_Element.The_Value; end Value_Part; --------------------------------------------------------------------------- function Image (The_Value : Value) return Standard.String is begin case The_Value.Is_Kind_Of is when String => return Umps_Defs.Denormalize (The_Value.String); when Integer => return Standard.Integer'Image (The_Value.Integer); when Character => return "" & The_Value.Character; when Boolean => return Standard.Boolean'Image (The_Value.Boolean); when Void => return ""; end case; end Image; --------------------------------------------------------------------------- function Image (The_Element : Element) return Standard.String is begin if (Is_Empty_Value (The_Element)) then return Name_Of (The_Element) & Umps_Defs.Separator & Kind'Image (Kind_Of (The_Element)) & Umps_Defs.Separator; else return Name_Of (The_Element) & Umps_Defs.Separator & Kind'Image (Kind_Of (The_Element)) & Umps_Defs.Separator & Image (Value_Part (The_Element)); end if; end Image; --------------------------------------------------------------------------- procedure Display (The_Element : Element; String_Before : Standard.String := "") is begin Text_Io.Put_Line (String_Before & "The_Element => " & Name_Of (The_Element)); Text_Io.Put_Line (String_Before & " Kind => " & Kind'Image (Kind_Of (The_Element))); if (Is_Empty_Value (The_Element)) then Text_Io.Put_Line (String_Before & " Value => <empty>"); else Text_Io.Put_Line (String_Before & " Value => " & Image (Value_Part (The_Element))); end if; end Display; --------------------------------------------------------------------------- function Is_Part_Equal (Left, Right : Value) return Standard.Boolean is begin case Left.Is_Kind_Of is when String => return Umps_Defs.Denormalize (Left.String) = Umps_Defs.Denormalize (Right.String); when Integer => return Left.Integer = Right.Integer; when Character => return Left.Character = Right.Character; when Boolean => return Left.Boolean = Right.Boolean; when Void => return True; end case; end Is_Part_Equal; --------------------------------------------------------------------------- function Is_Equal (Left, Right : Element) return Standard.Boolean is begin if (Field = On_None) then return True; end if; if (Umps_Defs.Denormalize (Left.The_Name) /= Umps_Defs.Denormalize (Right.The_Name)) then return False; elsif (Field = On_Name) then return True; end if; if (Kind_Of (Left) /= Kind_Of (Right)) then return False; elsif (Field = On_Kind) then return True; end if; if (Is_Empty_Value (Left) /= Is_Empty_Value (Right)) then return False; elsif (Is_Empty_Value (Left)) then return True; end if; return Is_Part_Equal (Value_Part (Left), Value_Part (Right)); end Is_Equal; --------------------------------------------------------------------------- function Is_Part_Less (Left, Right : Value) return Standard.Boolean is begin case Left.Is_Kind_Of is when String => return Umps_Defs.Denormalize (Left.String) < Umps_Defs.Denormalize (Right.String); when Integer => return Left.Integer < Right.Integer; when Character => return Left.Character < Right.Character; when Boolean => return Left.Boolean < Right.Boolean; when Void => return False; end case; end Is_Part_Less; --------------------------------------------------------------------------- function Is_Less (Left, Right : Element) return Standard.Boolean is begin if (Field = On_None) then return False; end if; if (Umps_Defs.Denormalize (Left.The_Name) > Umps_Defs.Denormalize (Right.The_Name)) then return False; elsif (Field = On_Name) then return True; end if; if (Kind_Of (Left) > Kind_Of (Right)) then return False; elsif (Field = On_Kind) then return True; end if; if (Is_Empty_Value (Left) or else Is_Empty_Value (Right)) then return False; end if; return Is_Part_Less (Value_Part (Left), Value_Part (Right)); end Is_Less; --------------------------------------------------------------------------- function Is_Part_Most (Left, Right : Value) return Standard.Boolean is begin case Left.Is_Kind_Of is when String => return Umps_Defs.Denormalize (Left.String) > Umps_Defs.Denormalize (Right.String); when Integer => return Left.Integer > Right.Integer; when Character => return Left.Character > Right.Character; when Boolean => return Left.Boolean > Right.Boolean; when Void => return False; end case; end Is_Part_Most; --------------------------------------------------------------------------- function Is_Most (Left, Right : Element) return Standard.Boolean is begin if (Field = On_None) then return False; end if; if (Umps_Defs.Denormalize (Left.The_Name) < Umps_Defs.Denormalize (Right.The_Name)) then return False; elsif (Field = On_Name) then return True; end if; if (Kind_Of (Left) < Kind_Of (Right)) then return False; elsif (Field = On_Kind) then return True; end if; if (Is_Empty_Value (Left) or else Is_Empty_Value (Right)) then return False; end if; return Is_Part_Most (Value_Part (Left), Value_Part (Right)); end Is_Most; end Slot;
nblk1=14 nid=f hdr6=20 [0x00] rec0=1b rec1=00 rec2=01 rec3=046 [0x01] rec0=19 rec1=00 rec2=10 rec3=07a [0x02] rec0=00 rec1=00 rec2=12 rec3=002 [0x03] rec0=18 rec1=00 rec2=02 rec3=014 [0x04] rec0=19 rec1=00 rec2=0b rec3=008 [0x05] rec0=1e rec1=00 rec2=13 rec3=032 [0x06] rec0=01 rec1=00 rec2=14 rec3=038 [0x07] rec0=1d rec1=00 rec2=06 rec3=032 [0x08] rec0=1c rec1=00 rec2=07 rec3=01a [0x09] rec0=19 rec1=00 rec2=0c rec3=028 [0x0a] rec0=17 rec1=00 rec2=08 rec3=01e [0x0b] rec0=1f rec1=00 rec2=11 rec3=032 [0x0c] rec0=1d rec1=00 rec2=05 rec3=016 [0x0d] rec0=20 rec1=00 rec2=0d rec3=00e [0x0e] rec0=1c rec1=00 rec2=09 rec3=054 [0x0f] rec0=0d rec1=00 rec2=0e rec3=000 [0x10] rec0=07 rec1=00 rec2=0a rec3=000 [0x11] rec0=21 rec1=00 rec2=0a rec3=018 [0x12] rec0=02 rec1=00 rec2=0b rec3=000 [0x13] rec0=00 rec1=00 rec2=00 rec3=000 tail 0x21520436a83aa67909582 0x42a00088462063c03 Free Block Chain: 0xf: 0000 00 0a 01 02 80 07 6e 20 54 72 75 65 3b 07 00 0f ┆ n True; ┆ 0xa: 0000 00 04 00 a6 80 09 68 74 29 29 20 74 68 65 6e 09 ┆ ht)) then ┆ 0x4: 0000 00 03 00 4c 80 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆ L *----------┆ 0x3: 0000 00 00 00 1a 00 17 20 20 20 20 2d 2d 2d 2d 2d 2d ┆ ------┆