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

⟦79b700271⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Test_Action_List, seg_0448e1

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 Compiler_Action, Dynamic_Value, Dynamic_Node, Text_Io;
procedure Test_Action_List is
    Alist : Compiler_Action.Acces_List;
    D_V, D_V1, D_V2, D_V3 : Dynamic_Value.Object;
    D_A, D_A1, D_A2, D_A3 : Compiler_Action.Object;

    Dni1, Dni2, Dnc1 : Dynamic_Node.Object;

    -- pour un second arbre
    D_V4, D_V5, D_V6, D_V7 : Dynamic_Value.Object;
    D_A4, D_A5, D_A6, D_A7 : Compiler_Action.Object;
    Dni3, Dni4, Dnc2 : Dynamic_Node.Object;

    use Dynamic_Node;

begin
    Compiler_Action.Create_List (Alist);
    Compiler_Action.Create_Action (D_A, Compiler_Action.Conditional_Action);
    Text_Io.Put_Line ("apres creation d'une liste d'actions");

    Dynamic_Value.Set_Value (D_V, "coucou");
    Dynamic_Value.Set_Value (D_V1, 120);
    Dynamic_Value.Set_Value (D_V2, 20);
    Dynamic_Value.Set_Value (D_V3, "toto");

    Dynamic_Node.Create_Value (Dni1);
    Dynamic_Node.Set_Value (Dni1, D_V1);
    Dynamic_Node.Create_Value (Dni2);
    Dynamic_Node.Set_Value (Dni2, D_V2);

    Text_Io.Put_Line ("creation d'une action conditionnelle);");

    Dynamic_Node.Create_Binary_Operator (Dnc1,
                                         Less_Equal);  -- condition a evaluer
    Dynamic_Node.Set_Argument (Dnc1, Dni1, Left);
    Dynamic_Node.Set_Argument (Dnc1, Dni2, Right);

    Compiler_Action.Set_Argument
       (D_A, Compiler_Action.Condition_Argument, Dnc1);

    Compiler_Action.Create_Action
       (D_A1, Compiler_Action.Write_Action); -- action vraie
    Compiler_Action.Set_Argument (D_A1, Compiler_Action.Write_Argument, D_V);

    Compiler_Action.Create_Action
       (D_A2, Compiler_Action.Write_Action); -- action fausse
    Compiler_Action.Set_Argument (D_A2, Compiler_Action.Write_Argument, D_V3);

    -- mise en place de la clause vraie
    Compiler_Action.Set_Argument (D_A, Compiler_Action.True_Component, D_A1);

    -- mise en place de la clause fausse
    Compiler_Action.Set_Argument (D_A, Compiler_Action.False_Component, D_A2);

    Compiler_Action.Add_Action (Alist, D_A);

    -- evaluation
    Dynamic_Node.Evaluate (Dnc1);
    Compiler_Action.Evaluate (Alist);

    Text_Io.Put_Line ("execution liste");
    Compiler_Action.Execute (Alist);

    -- construction d'une seconde action conditionnelle
    Compiler_Action.Create_Action (D_A4, Compiler_Action.Conditional_Action);

    Dynamic_Value.Set_Value (D_V4, "tutu");
    Dynamic_Value.Set_Value (D_V5, 200);
    Dynamic_Value.Set_Value (D_V6, 20);
    Dynamic_Value.Set_Value (D_V7, "lolo");

    Dynamic_Node.Create_Value (Dni3);
    Dynamic_Node.Set_Value (Dni3, D_V5);
    Dynamic_Node.Create_Value (Dni4);
    Dynamic_Node.Set_Value (Dni4, D_V6);

    Dynamic_Node.Create_Binary_Operator (Dnc2, More);  -- condition a evaluer
    Dynamic_Node.Set_Argument (Dnc2, Dni3, Left);
    Dynamic_Node.Set_Argument (Dnc2, Dni4, Right);

    Compiler_Action.Set_Argument
       (D_A4, Compiler_Action.Condition_Argument, Dnc2);

    Compiler_Action.Create_Action
       (D_A5, Compiler_Action.Write_Action); -- action vraie
    Compiler_Action.Set_Argument (D_A5, Compiler_Action.Write_Argument, D_V4);

    Compiler_Action.Create_Action
       (D_A6, Compiler_Action.Write_Action); -- action fausse
    Compiler_Action.Set_Argument (D_A6, Compiler_Action.Write_Argument, D_V7);

    -- mise en place de la clause vraie
    Compiler_Action.Set_Argument (D_A4, Compiler_Action.True_Component, D_A5);

    -- mise en place de la clause fausse
    Compiler_Action.Set_Argument (D_A4, Compiler_Action.False_Component, D_A6);

    -- Compiler_Action.Add_Action (Alist, D_A4);

    Compiler_Action.Set_Argument (D_A, Compiler_Action.False_Component, D_A4);

    -- evaluation
    Dynamic_Node.Evaluate (Dnc2);
    Compiler_Action.Evaluate (Alist);

    Text_Io.Put_Line ("execution liste");
    Compiler_Action.Execute (Alist);
end Test_Action_List;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=1e rec1=00 rec2=01 rec3=008
        [0x01] rec0=18 rec1=00 rec2=04 rec3=04c
        [0x02] rec0=1d rec1=00 rec2=02 rec3=02e
        [0x03] rec0=1b rec1=00 rec2=03 rec3=000
    tail 0x2154070ee864237c7953a 0x42a00088462060003