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

⟦25cc175ee⟧ Ada Source

    Length: 3072 (0xc00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body List, seg_032d89

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



with Scanner;
with Object;
with Class_Block;  
with Statements;

package body List is
    type Node_Structure is
        record
            Kwd : Object.Unary;
            Ident : Object.Unary;
            Stat : Statements.Node := Statements.Empty_Node;
            Parent : Block.Node := Block.Empty_Node;
        end record;

    procedure Parse (N : in out Block.Node;
                     Ident : in out Object.Unary;
                     Kwd : in out Object.Unary;
                     Error : out Boolean) is
        Failed : Boolean := False;
        use Scanner;
    begin  
        case Scanner.Get_Token is
            when Scanner.Identifier =>
                Object.Put (This => Scanner.Get_Value, Into => Ident);
                Scanner.Next;  
                if Scanner.Get_Token = Scanner.Identifier then
                    Parse (N, Ident, Kwd, Error);
                end if;
            when Scanner.Keyword =>
                Object.Put (This => Scanner.Get_Value, Into => Kwd);
                Scanner.Next;
                Object.Put (This => Scanner.Get_Value, Into => Ident);
                Scanner.Next;
                if Scanner.Get_Token = Scanner.Keyword then
                    Parse (N, Ident, Kwd, Error);
                end if;  
            when others =>
                null;
        end case;
        Error := Failed;
    end Parse;

    function Is_First (T : Scanner.Token) return Boolean is
        use Scanner;
    begin
        return T = Identifier or else T = Keyword;
    end Is_First;

end List;

E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=1f rec1=00 rec2=01 rec3=02e
        [0x01] rec0=14 rec1=00 rec2=02 rec3=001
    tail 0x2172e5f2684cc59241cb4 0x42a00088462060003