|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 4164 (0x1044)
Types: TextFile
Names: »V«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
└─⟦d65440be7⟧ »DATA«
└─⟦this⟧
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦e24fb53b7⟧
└─⟦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;