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

⟦ffdb0c071⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Our_Tree, seg_049425

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 Our_Value, Ext_String, Lex;
use Our_Value, Lex;

package body Our_Tree is

    function Create return Var_Tree is
    begin
        return new Node;
    end Create;


    procedure Set_Value (Root : in out Var_Tree;
                         Val : Var_Value;
                         Left, Right : out Var_Tree) is
    begin
        Set_Value (Root.Value, Val);
        Left := Root.Left;
        Right := Root.Right;
    end Set_Value;


    function Get_Value (Tree : Var_Tree) return Our_Value.Var_Value is
        Token : Lex.Token;
        Local_Boolean : [expression] := Boolean;
        Local_Integer : [expression] := Integer;
        Local_String : [expression] := Var_String;

        Value : Var_Value (Type_Value);
        Boolean1, Boolean2 : Var_Value (Boolean);  
        Integer1, Integer2 : Var_Value (Integer);
        String1, String2 : Var_Value (Var_String);

    begin
        case Get_Type (Tree.Value) is
            when Undefined =>
                raise Type_Conflict;

            when Type_Value =>
                Our_Value.Set_Value (Value, Get_Value (Tree.Value));
                return Value;

            when Type_Token =>
                Token := Get_Value (Tree.Value);
                case Token is
                    when Identifier =>
                        Set_Value (Value, Get_Value (Tree.Right));
                        return Value;

                    when Non =>
                        Set_Value (Boolean1, Get_Value (Tree.Right));
                        Local_Boolean := Op (Token, Boolean1);
                        Set_Value (Boolean1, Local_Boolean);
                        return Boolean1;

                    when Et =>
                        [statement]

                    when Ou =>
                        [statement]

                end case;

            when Type_Boolean =>
                Boolean1 := Get_Value (Tree.Value);

            when Type_Integer =>
                Integer1 := Get_Value (Tree.Value);

            when Type_String =>
                Ext_String.Copy (String1, Get_Value (Tree.Value));
        end case;

        return Tree.Value;
    end Get_Value;

end Our_Tree;




E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=23 rec1=00 rec2=01 rec3=046
        [0x01] rec0=02 rec1=00 rec2=02 rec3=02e
        [0x02] rec0=1e rec1=00 rec2=03 rec3=040
        [0x03] rec0=0e rec1=00 rec2=04 rec3=000
    tail 0x21546ab0e865b97d10385 0x42a00088462060003