|
|
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: 10240 (0x2800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Slot, seg_02cfcc, seg_02d0f3
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Constant_String;
with Output_Stream;
package Slot is
type Types is (Integer, Boolean, Float, Character,
Duration, String, Enumeration, Undefined);
type Object (Kind : Types := Integer) is private;
Null_Object : constant Object;
False, True : constant Object;
function Value (I : Standard.Integer) return Object;
function Value (B : Standard.Boolean) return Object;
function Value (F : Standard.Float) return Object;
function Value (C : Standard.Character) return Object;
function Value (D : Standard.Duration) return Object;
function Value (S : Standard.String) return Object;
function Get (The_Object : Object) return Standard.Integer;
function Get (The_Object : Object) return Standard.Boolean;
function Get (The_Object : Object) return Standard.Float;
function Get (The_Object : Object) return Standard.Character;
function Get (The_Object : Object) return Standard.Duration;
function Get (The_Object : Object) return Standard.String;
procedure Set (The_Object : in out Object; To : Standard.Integer);
procedure Set (The_Object : in out Object; To : Standard.Boolean);
procedure Set (The_Object : in out Object; To : Standard.Float);
procedure Set (The_Object : in out Object; To : Standard.Character);
procedure Set (The_Object : in out Object; To : Standard.Duration);
procedure Set (The_Object : in out Object; To : Standard.String);
function Have_Same_Type (Left, Right : Object) return Standard.Boolean;
procedure Put (The_Object : Object; Where : Output_Stream.Object);
package Operators is
function "=" (Left, Right : Object) return Standard.Boolean
renames Slot."=";
function "<" (Left, Right : Object) return Standard.Boolean;
function "<=" (Left, Right : Object) return Standard.Boolean;
function ">" (Left, Right : Object) return Standard.Boolean;
function ">=" (Left, Right : Object) return Standard.Boolean;
function "+" (Left, Right : Object) return Object;
function "-" (Left, Right : Object) return Object;
function "*" (Left, Right : Object) return Object;
function "/" (Left, Right : Object) return Object;
function "-" (Right : Object) return Object;
function "abs" (Right : Object) return Object;
end Operators;
generic
type Enumeration_Values is (<>);
package Enumeration_Facilities is
function Value (Enumeration_Value : Enumeration_Values) return Object;
function Get (The_Object : Object) return Enumeration_Values;
procedure Set (The_Object : in out Object; To : Enumeration_Values);
procedure Put (The_Object : Object; Where : Output_Stream.Object);
end Enumeration_Facilities;
Illegal_Operation : exception;
Typing_Error : exception;
private
type Object (Kind : Types := Integer) is
record
case Kind is
when Integer =>
The_Integer : Standard.Integer := 0;
when Float =>
The_Float : Standard.Float := 0.0;
when Boolean =>
The_Boolean : Standard.Boolean := Standard.False;
when Character =>
The_Character : Standard.Character := Ascii.Nul;
when Duration =>
The_Duration : Standard.Duration := 0.0;
when String =>
The_String : Constant_String.Object :=
Constant_String.Null_Object;
when Enumeration =>
The_Enumeration : Standard.Integer := 0;
when Undefined =>
null;
end case;
end record;
Null_Object : constant Slot.Object := (Kind => Undefined);
False : constant Slot.Object := (Kind => Boolean,
The_Boolean => Standard.False);
True : constant Slot.Object := (Kind => Boolean,
The_Boolean => Standard.True);
end Slot;
nblk1=9
nid=2
hdr6=a
[0x00] rec0=18 rec1=00 rec2=01 rec3=054
[0x01] rec0=14 rec1=00 rec2=07 rec3=06a
[0x02] rec0=19 rec1=00 rec2=09 rec3=018
[0x03] rec0=19 rec1=00 rec2=05 rec3=026
[0x04] rec0=0a rec1=00 rec2=06 rec3=000
[0x05] rec0=05 rec1=00 rec2=06 rec3=000
[0x06] rec0=16 rec1=00 rec2=06 rec3=05c
[0x07] rec0=04 rec1=00 rec2=08 rec3=000
[0x08] rec0=64 rec1=05 rec2=00 rec3=000
tail 0x21525e40a84143e3ee6f9 0x42a00088462063c03
Free Block Chain:
0x2: 0000 00 04 03 fc 00 21 20 20 20 20 20 20 20 20 20 20 ┆ ! ┆
0x4: 0000 00 08 03 fc 80 36 20 20 20 20 20 20 54 68 65 5f ┆ 6 The_┆
0x8: 0000 00 03 00 2c 80 14 6e 20 3d 3e 20 53 74 61 6e 64 ┆ , n => Stand┆
0x3: 0000 00 00 00 06 80 03 72 65 74 03 63 74 29 20 72 65 ┆ ret ct) re┆