|
|
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: 9216 (0x2400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Slot, seg_04a349
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Constant_String;
with Fact_Reference;
with Output_Stream;
package Slot is
type Types is (Integer, Boolean, Float, Character, Duration,
String, Enumeration, Reference, 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 Undefined_Value return Object;
function Is_Undefined (The_Object : Object) return Standard.Boolean;
procedure Make_Undefined (The_Object : in out Object);
function Is_A_Reference (The_Object : Object) return Standard.Boolean;
function Reference_Value
(The_Reference : Fact_Reference.Object) return Object;
function Get_Reference (From_Object : Object) return Fact_Reference.Object;
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 "&" (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 Reference =>
The_Reference : Fact_Reference.Object :=
Fact_Reference.Null_Object;
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=8
nid=4
hdr6=e
[0x00] rec0=1a rec1=00 rec2=01 rec3=024
[0x01] rec0=00 rec1=00 rec2=05 rec3=018
[0x02] rec0=11 rec1=00 rec2=06 rec3=0a0
[0x03] rec0=18 rec1=00 rec2=08 rec3=010
[0x04] rec0=02 rec1=00 rec2=02 rec3=016
[0x05] rec0=1b rec1=00 rec2=03 rec3=008
[0x06] rec0=17 rec1=00 rec2=07 rec3=000
[0x07] rec0=48 rec1=51 rec2=64 rec3=768
tail 0x2174ea728866e7f89a884 0x42a00088462063c03
Free Block Chain:
0x4: 0000 00 00 03 97 00 28 20 20 20 20 20 20 20 20 74 79 ┆ ( ty┆