DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦ca392263f⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Dynamic_Value, seg_0474c2

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



package Dynamic_Value is

    Type_Mismatch : exception;
    Division_By_Zero : exception;
    Illegal_Operation : exception;

    Integer_Expected : exception;
    String_Expected : exception;
    Boolean_Expected : exception;
    Word_Expected : exception;
    Set_Expected : exception;
    Word_Or_String_Expected : exception;


    type Kinds is (Unknown, Integer_Number, String_Of_Characters,
                   Vocabulary_Word, Boolean_Number, Set_Of_Words);
    type Type_Value is (String_Value, Voca_Value);
    type Object is private;

    -- fonctions de manipulation des objets

    procedure Dispose (Obj : in out Object);
    function Are_Equal (Obj1, Obj2 : in Object) return Boolean;
    function Get_Kind (Obj : in Object) return Kinds;
    function Get_Value (Obj : in Object) return Integer;  
    procedure Set_Value (Obj : in out Object; Val : Integer);
    function Get_Value (Obj : in Object) return String;  
    procedure Set_Value (Obj : in out Object;
                         Val : String;
                         Is_A_Vocabulary_Word : Type_Value := String_Value);
    function Get_Value (Obj : in Object) return Boolean;
    procedure Set_Value (Obj : in out Object; Val : in Boolean);

    procedure Deep_Copy (Source : in Object; Target : in out Object);
    procedure Light_Copy (Source : in Object; Target : in out Object);

    procedure Print (Obj : in Object);


    -- procedure d'evaluation des objets

    -- *** operations valables sur plusieurs types selon le sens commun  ***

    procedure Are_Equal (Left, Right : in Object; Result : in out Object);
    procedure Is_Less (Left, Right : in Object; Result : in out Object);
    procedure Is_Less_Equal (Left, Right : in Object; Result : in out Object);
    procedure Is_More (Left, Right : in Object; Result : in out Object);
    procedure Is_More_Equal (Left, Right : in Object; Result : in out Object);
    procedure Is_Different (Left, Right : in Object; Result : in out Object);

    -- *** les entiers ***

    procedure Change_Sign (Obj : in Object; Result : in out Object);
    procedure Add (Left, Right : in Object; Result : in out Object);
    procedure Substract (Left, Right : in Object; Result : in out Object);
    procedure Multiply (Left, Right : in Object; Result : in out Object);
    procedure Divide (Left, Right : in Object; Result : in out Object);

    --  *** les booleens ***

    procedure Logical_And (Left, Right : in Object; Result : in out Object);  
    procedure Logical_Or (Left, Right : in Object; Result : in out Object);  
    procedure Logical_Not (Obj : in Object; Result : in out Object);

    -- *** les ensembles ***

    procedure Create (Set : in out Object);
    procedure In_Set (Set : in Object;
                      Element : in String;
                      Result : in out Object);  
    procedure Append_To_Set (Set : in out Object; Element : in String);
    procedure Delete_From_Set (Set : in out Object; Element : in String);
    procedure Purge_Set (Set : in out Object);


private


    type Value (What : Kinds := Unknown);
    type Object is access Value;


end Dynamic_Value;



E3 Meta Data

    nblk1=6
    nid=3
    hdr6=8
        [0x00] rec0=1d rec1=00 rec2=01 rec3=038
        [0x01] rec0=14 rec1=00 rec2=05 rec3=05a
        [0x02] rec0=17 rec1=00 rec2=02 rec3=010
        [0x03] rec0=0f rec1=00 rec2=04 rec3=000
        [0x04] rec0=04 rec1=00 rec2=03 rec3=001
        [0x05] rec0=6f rec1=70 rec2=65 rec3=373
    tail 0x2174aad9886538ecb732a 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 06 00 1e 00 12 65 6e 64 20 44 79 6e 61 6d 69  ┆      end Dynami┆
  0x6: 0000  00 00 00 04 80 01 6f 01 49 6e 74 65 67 65 72 29  ┆      o Integer)┆