|
|
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: 3495 (0xda7)
Types: TextFile
Names: »V«
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
└─⟦d65440be7⟧ »DATA«
└─⟦this⟧
with List_Generic;
with Bounded_String;
package Object is
Max_Integer : constant := 65536;
Max_String : constant := 100;
type E_Class is (Integer_Class, Boolean_Class, String_Class,
Turtle_Class, Pen_Class, Block_Class, Void_Class);
subtype Tiny_String is Bounded_String.Variable_String (80);
Empty_String : Tiny_String;
type Index is range -Max_Integer .. Max_Integer;
type Reference is private;
type Access_Reference is private;
Void_Reference : constant Reference;
function Create (Class : E_Class; Object : Index) return Reference;
function Get (From : Reference) return E_Class;
function Get (From : Reference) return Index;
procedure Put (This : E_Class; Into : out Reference);
procedure Put (This : Index; Into : out Reference);
type Keyword is private;
type Access_Keyword is private;
Void_Keyword : constant Keyword;
function Create return Keyword;
function Send (This_Message : Keyword; To : Reference) return Reference;
function Get (From : Keyword) return Tiny_String;
function Get (From : Keyword) return Reference;
procedure Put (This : Tiny_String;
And_This : Reference;
Into : in out Keyword);
procedure Put (This : Tiny_String; Into : in out Keyword);
procedure Put (This : Reference; Into : in out Keyword);
procedure Next (From : in out Keyword);
function Is_Empty (This : Keyword) return Boolean;
function Is_Empty_Name (This : Keyword) return Boolean;
function Is_Empty_Argument (This : Keyword) return Boolean;
procedure Free (This : in out Keyword);
type Binary is private;
type Access_Binary is private;
Void_Binary : constant Binary;
function Create return Binary;
function Send (This_Message : Binary; To : Reference) return Reference;
function Get (From : Binary) return Tiny_String;
function Get (From : Binary) return Reference;
procedure Put (This : Tiny_String; Into : out Binary);
procedure Put (This : Reference; Into : out Binary);
subtype Unary is Tiny_String;
type Access_Unary is private;
function Create return Unary;
function Send (This_Message : Unary; To : Reference) return Reference;
function Get (From : Unary) return Tiny_String;
procedure Put (This : Tiny_String; Into : out Unary);
private
type Reference is
record
Id_Class : E_Class := Void_Class;
Id_Object : Index := 0;
end record;
type Access_Reference is access Reference;
Void_Reference : constant Reference :=
(Id_Class => Void_Class, Id_Object => 0);
package Message_Name is new List_Generic (Element => Tiny_String);
package Message_Argument is new List_Generic (Element => Reference);
type Keyword is
record
Name : Message_Name.List := Message_Name.Nil;
Argument : Message_Argument.List := Message_Argument.Nil;
end record;
type Access_Keyword is access Keyword;
Void_Keyword : constant Keyword :=
(Name => Message_Name.Nil, Argument => Message_Argument.Nil);
type Binary is
record
Name : Tiny_String;
Argument : Reference := Void_Reference;
end record;
type Access_Binary is access Binary;
Void_Binary : constant Binary :=
(Name => Empty_String, Argument => Void_Reference);
type Access_Unary is access Unary;
end Object;