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

⟦6b762e7a5⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Dynamic_Node, seg_04879a

Derivation

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

E3 Source Code



with Dynamic_Value;

package Dynamic_Node is

    type Kinds is (Unknown, Value, Binary_Operator,
                   Unary_Operator, Ternary_Operator);
    type Positions is (Left, Right, Center);

    Verb_Position : constant Positions := Left;
    Cplt1_Position : constant Positions := Center;
    Cplt2_Position : constant Positions := Right;

    type Binary_Operators is (Add, Subtract, Divide, Multiply, Equal,
                              Less, Less_Equal, More, More_Equal,
                              Different, Logical_And, Logical_Or, In_Set);

    type Unary_Operators is (Plus, Minus, Logical_Not, Verb, Complement);

    type Ternary_Operators is (Sentence);

    type Authorized_Type is (Type_Unknown, Type_Int, Type_String,
                             Type_Voca, Type_Bool, Type_Set_Words);


    type Object is private;


    Object_Already_Exists : exception;
    Object_Is_Not_Created : exception;
    Object_Is_Not_Evaluated : exception;
    Value_Does_Not_Exist_Or_Is_Not_Evaluated : exception;

    procedure Create_Value (Obj : in out Object);
    procedure Set_Value (Obj : in out Object; Val : in Dynamic_Value.Object);

    procedure Create_Unary_Operator (Obj : in out Object; Op : Unary_Operators);
    procedure Create_Binary_Operator
                 (Obj : in out Object; Op : Binary_Operators);  
    procedure Create_Ternary_Operator
                 (Obj : in out Object; Op : Ternary_Operators);

    function Get_Kind (Obj : in Object) return Kinds;
    function Get_Operator (Obj : in Object) return String;

    function Get_Type_Of_Object (Obj : in Object) return Authorized_Type;
    procedure Set_Argument (Obj : in out Object;
                            Arg : in Object;
                            Where : Positions := Center);
    function Get_Argument
                (Obj : in Object; Where : Positions := Center) return Object;
    function Get_Value (Obj : in Object) return Dynamic_Value.Object;
    procedure Evaluate (Obj : in Object);  
    procedure Print (Obj : in Object);  
    function Does_Exists (Obj : in Object) return Boolean;
    procedure Disconnect (Obj : in out Object);

private

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

end Dynamic_Node;



E3 Meta Data

    nblk1=4
    nid=3
    hdr6=6
        [0x00] rec0=1f rec1=00 rec2=01 rec3=022
        [0x01] rec0=15 rec1=00 rec2=02 rec3=042
        [0x02] rec0=0f rec1=00 rec2=04 rec3=000
        [0x03] rec0=0f rec1=00 rec2=04 rec3=000
    tail 0x21545bafe8659976f71be 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 00 04 80 01 74 01 02 03 04 05 06 07 63 74  ┆      t       ct┆