|
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: 12288 (0x3000) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Values, seg_044e9b
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
package body Values is -- creation procedure New_Value (V : out Value) is begin V := (Kind => Undefine_Value); end New_Value; -- access function Kind_Of (V : in Value) return Kind_Of_Values is begin return V.Kind; end Kind_Of; function Value_As (V : in Value) return Natural is begin if V.Kind = Natural_Value then return V.The_Natural; else raise No_Natural_Value; end if; end Value_As; function Value_As (V : in Value) return Boolean is begin if V.Kind = Boolean_Value then return V.The_Boolean; else raise No_Boolean_Value; end if; end Value_As; function Value_As (V : in Value) return String is begin if V.Kind = String_Value then return Bounded_String.Image (V.The_String); else raise No_String_Value; end if; end Value_As; function Equal (V1 : in Value; V2 : in Value) return Boolean is begin if V1.Kind = V2.Kind then case V1.Kind is when Undefine_Value => return True; when Natural_Value => return (V1.The_Natural = V2.The_Natural); when Boolean_Value => return (V1.The_Boolean = V2.The_Boolean); when String_Value => return Bounded_String.Image (V1.The_String) = Bounded_String.Image (V2.The_String); end case; else return False; end if; end Equal; function Image (V : in Value) return String is begin case V.Kind is when Undefine_Value => return "Undefine value !!"; when Natural_Value => return Integer'Image (V.The_Natural); when Boolean_Value => return Boolean'Image (V.The_Boolean); when String_Value => return Bounded_String.Image (V.The_String); end case; end Image; -- modification procedure Undefine (V : in out Value) is begin Dispose (V); New_Value (V); end Undefine; procedure Set_To (V : in out Value; I : in Natural) is begin Undefine (V); V := (Kind => Natural_Value, The_Natural => I); end Set_To; procedure Set_To (V : in out Value; B : in Boolean) is begin Undefine (V); V := (Kind => Boolean_Value, The_Boolean => B); end Set_To; procedure Set_To (V : in out Value; S : in String) is begin Undefine (V); V := (Kind => String_Value, The_String => Bounded_String.Value (S, 128)); end Set_To; procedure Copy (To_Value : in out Value; The_Value : in Value) is begin if The_Value.Kind = String_Value then Set_To (To_Value, Bounded_String.Image (The_Value.The_String)); else Undefine (To_Value); To_Value := The_Value; end if; end Copy; -- liberation procedure Dispose (V : in out Value) is begin if V.Kind = String_Value then Bounded_String.Free (V.The_String); end if; V := (Kind => Undefine_Value); end Dispose; end Values;
nblk1=b nid=9 hdr6=8 [0x00] rec0=2e rec1=00 rec2=01 rec3=044 [0x01] rec0=1f rec1=00 rec2=02 rec3=05e [0x02] rec0=28 rec1=00 rec2=05 rec3=054 [0x03] rec0=1a rec1=00 rec2=0b rec3=000 [0x04] rec0=18 rec1=00 rec2=08 rec3=046 [0x05] rec0=1b rec1=00 rec2=05 rec3=056 [0x06] rec0=21 rec1=00 rec2=07 rec3=002 [0x07] rec0=1b rec1=00 rec2=03 rec3=040 [0x08] rec0=1c rec1=00 rec2=0a rec3=030 [0x09] rec0=1d rec1=00 rec2=0b rec3=018 [0x0a] rec0=09 rec1=00 rec2=09 rec3=000 tail 0x217463e4686467b558d6b 0x42a00088462060003 Free Block Chain: 0x9: 0000 00 0a 00 53 80 1a 20 28 4b 69 6e 64 20 3d 3e 20 ┆ S (Kind => ┆ 0xa: 0000 00 03 00 3f 80 1e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆ ? ----------┆ 0x3: 0000 00 07 03 fc 80 36 20 20 20 20 20 20 20 56 20 3a ┆ 6 V :┆ 0x7: 0000 00 08 00 42 80 17 6c 75 65 3b 20 49 20 3a 20 69 ┆ B lue; I : i┆ 0x8: 0000 00 06 03 fc 80 32 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ┆ 2----------┆ 0x6: 0000 00 04 03 fc 80 08 6c 5f 56 61 6c 75 65 3b 08 00 ┆ l_Value; ┆ 0x4: 0000 00 00 03 fc 80 07 2d 4a 61 6e 2d 39 35 07 00 1d ┆ -Jan-95 ┆