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

⟦26def15bd⟧ Ada Source

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

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 Error, Signe, Terme;

package body Expression_Simple is


    procedure Parse (Dyn_Node : in out Dynamic_Node.Object) is
        use Lexical_Analyzer;
        Inherited, Inherited1, Local_Node_Right, Local_Sub_Node_Left :
           Dynamic_Node.Object;
    begin
        Signe.Parse (Inherited);
        Terme.Parse (Local_Sub_Node_Left);
        if Dynamic_Node.Does_Exists (Inherited) then
            Dynamic_Node.Set_Argument (Inherited, Local_Sub_Node_Left);
        else
            Inherited := Local_Sub_Node_Left;
        end if;
        Dynamic_Node.Disconnect (Local_Sub_Node_Left);

        while ((Lexical_Analyzer.Get_Token = Plus) or
               (Lexical_Analyzer.Get_Token = Minus) or
               (Lexical_Analyzer.Get_Token = Ou)) loop

            case Lexical_Analyzer.Get_Token is

                when Plus =>  
                    Dynamic_Node.Create_Binary_Operator
                       (Inherited1, Dynamic_Node.Add);

                when Minus =>
                    Dynamic_Node.Create_Binary_Operator
                       (Inherited1, Dynamic_Node.Subtract);

                when Ou =>  
                    Dynamic_Node.Create_Binary_Operator
                       (Inherited1, Dynamic_Node.Logical_Or);

                when others =>
                    null;

            end case;

            Lexical_Analyzer.Next;  
            Dynamic_Node.Set_Argument
               (Inherited1, Inherited, Dynamic_Node.Left);

            Terme.Parse (Local_Node_Right);
            Dynamic_Node.Set_Argument
               (Inherited1, Local_Node_Right, Dynamic_Node.Right);

            Inherited := Inherited1;
            Dynamic_Node.Disconnect (Inherited1);
            Dynamic_Node.Disconnect (Local_Node_Right);

        end loop;  
        Dyn_Node := Inherited;

    end Parse;


    function Is_First (Un_Token : Lexical_Analyzer.Tokens) return Boolean is  
        use Lexical_Analyzer;
    begin
        return ((Un_Token = Plus) or (Un_Token = Minus) or
                (Un_Token = Left_Bracket) or (Un_Token = Non) or
                (Un_Token = Integer_Number) or (Un_Token = Identifier) or
                (Un_Token = String_Of_Characters) or
                (Un_Token = Complement_Or_Verbe) or
                (Un_Token = Complement1) or (Un_Token = Complement2));
    end Is_First;


end Expression_Simple;

E3 Meta Data

    nblk1=4
    nid=4
    hdr6=6
        [0x00] rec0=1d rec1=00 rec2=01 rec3=064
        [0x01] rec0=21 rec1=00 rec2=02 rec3=08e
        [0x02] rec0=0d rec1=00 rec2=03 rec3=000
        [0x03] rec0=03 rec1=7e rec2=de rec3=342
    tail 0x21545c882865a3a48e8ae 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 00 02 41 80 03 73 65 3b 03 00 00 00 00 00 00  ┆   A  se;       ┆