DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: B T

⟦6f93d5117⟧ TextFile

    Length: 2392 (0x958)
    Types: TextFile
    Names: »B«

Derivation

└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
    └─⟦5cb1d1d7f⟧ »DATA« 
        └─⟦3b1ee7bd8⟧ 
            └─⟦this⟧ 

TextFile

with Lines;
with Bounded_String;
with List_Generic;
package body Structured_Comments_Solution is

    function Define (Keyword : Comment_Keyword) return Structured_Comment is
        S_Comment : Structured_Comment;
    begin
        Bounded.Copy (S_Comment.Keyword, Keyword);
        return S_Comment;
    end Define;

    function Keyword (Comment : Structured_Comment) return Comment_Keyword is
    begin
        return Bounded.Image (Comment.Keyword);
    end Keyword;

    function Value_Field (Comment : Structured_Comment)
                         return Lines.Lines_Type is
    begin
        return Comment.Value;
    end Value_Field;

    function Initialize return Comment_Block is
    begin
        return Comment_Block (Comment_List.Nil);
    end Initialize;

    procedure Add_Structured_Comment
                 (To : in out Comment_Block; Comment : Structured_Comment) is
        Local_List : Comment_Block := To;
    begin
        if Is_Empty (Local_List) then
            To := Comment_Block (Comment_List.Make (Comment, Comment_List.Nil));
        else
            while not Is_Empty (Rest (Local_List)) loop
                Local_List := Rest (Local_List);
            end loop;
            Set_Rest (Local_List,
                      Comment_Block (Comment_List.Make
                                        (Comment, Comment_List.Nil)));
        end if;
    end Add_Structured_Comment;

    procedure Initialize (Iter : out Comment_Iterator;
                          From_Block : Comment_Block) is
        Local_Iter : Comment_Iterator := new Comment_List.Iterator;
    begin
        Comment_List.Init (Comment_List.Iterator (Local_Iter.all),
                           Comment_List.List (From_Block));
        Iter := Local_Iter;
    end Initialize;

    function Done (Iter : Comment_Iterator) return Boolean is
    begin
        return Comment_List.Done (Comment_List.Iterator (Iter.all));
    end Done;

    function Value (Iter : Comment_Iterator) return Structured_Comment is
    begin
        return Comment_List.Value (Comment_List.Iterator (Iter.all));
    end Value;

    procedure Next (Iter : in out Comment_Iterator) is
    begin
        Comment_List.Next (Comment_List.Iterator (Iter.all));
    end Next;

    procedure Parse (Comment_Lines : Lines.Lines_Type;
                     Block : in out Comment_Block) is separate;
end Structured_Comments_Solution;