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

⟦23838b035⟧ TextFile

    Length: 4733 (0x127d)
    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

separate (Structure)
function Filtered_Version_Of (This_Catalog : in Catalog) return Catalog is
    --
    The_Result : Filtration_State;
    --
    procedure Filter_Catalog (This_Catalog : in Catalog;
                              This_State : in out Filtration_State;
                              Control_Result : out Traversal_Control) is
    begin
        This_State.Filtered_Catalog := new Catalog_Node;
        This_State.Filtered_Catalog.Name := Lines.Copy (This_Catalog.Name);
        This_State.Filtered_Catalog.Version :=
           Lines.Copy (This_Catalog.Version);
        This_State.Filtered_Catalog.Location :=
           Lines.Copy (This_Catalog.Location);
        This_State.Filtered_Catalog.Description :=
           Text (Lines.Copy (Lines.Iterator (This_Catalog.Description)));
        This_State.Filtered_Catalog.The_Diagnostic :=
           Copy_Diagnostic (This_Catalog.The_Diagnostic);
        This_State.Filtered_Catalog.The_Data_File := This_Catalog.The_Data_File;
        This_State.Filtered_Catalog.Allowable_Models :=
           Copy_Object_List (This_Catalog.Allowable_Models);
        This_State.Filtered_Catalog.Allowable_Links :=
           Copy_Object_List (This_Catalog.Allowable_Links);
        This_State.Filtered_Catalog.Actual_Catalog :=
           This_Catalog.Actual_Catalog;
        This_State.Filtered_Catalog.Is_Good := This_Catalog.Is_Good;
        Control_Result := Continue;
    end Filter_Catalog;
    --
    procedure Filter_Section (This_Section : in Section;
                              This_State : in out Filtration_State;
                              Control_Result : out Traversal_Control) is
    begin
        if (not Dont_Want (This_Section)) then
            This_State.Filtered_Section := new Section_Node;
            This_State.Filtered_Section.Name := Lines.Copy (This_Section.Name);
            This_State.Filtered_Section.Location :=
               Lines.Copy (This_Section.Location);
            This_State.Filtered_Section.Description :=
               Text (Lines.Copy (Lines.Iterator (This_Section.Description)));
            This_State.Filtered_Section.Kind := This_Section.Kind;
            This_State.Filtered_Section.Parent := This_State.Filtered_Catalog;
            This_State.Filtered_Section.Actual_Section :=
               This_Section.Actual_Section;
            Section_Lists.Add (This_State.Filtered_Catalog.Sections,
                               This_State.Filtered_Section);
        end if;
        Control_Result := Continue;
    end Filter_Section;
    --
    procedure Filter_Item (This_Item : in Item;
                           This_State : in out Filtration_State;
                           Control_Result : out Traversal_Control) is
    begin
        if (not Dont_Want (This_Item)) then
            This_State.Filtered_Item := new Item_Node;
            This_State.Filtered_Item.Name := Lines.Copy (This_Item.Name);
            This_State.Filtered_Item.Location :=
               Lines.Copy (This_Item.Location);
            This_State.Filtered_Item.Description :=
               Text (Lines.Copy (Lines.Iterator (This_Item.Description)));
            This_State.Filtered_Item.Kind := This_Item.Kind;
            This_State.Filtered_Item.Imports :=
               Copy_Object_List (This_Item.Imports);
            This_State.Filtered_Item.Spec_Views :=
               Copy_Object_List (This_Item.Spec_Views);
            This_State.Filtered_Item.Load_Views :=
               Copy_Object_List (This_Item.Load_Views);
            This_State.Filtered_Item.Is_Proprietary := This_Item.Is_Proprietary;
            This_State.Filtered_Item.Parent := This_State.Filtered_Section;
            This_State.Filtered_Item.Actual_Item := This_Item.Actual_Item;
            Item_Lists.Add (This_State.Filtered_Section.Items,
                            This_State.Filtered_Item);
        end if;
        Control_Result := Continue;
    end Filter_Item;
    --
    procedure No_Op (This_Catalog : in Catalog;
                     This_State : in out Filtration_State) is
    begin  
        null;
    end No_Op;
    --
    procedure Traverse_And_Filter is new Traverse (Filtration_State,  
                                                   Filter_Catalog,  
                                                   Filter_Section,  
                                                   Filter_Item,  
                                                   No_Op);
    --
begin  
    declare
        Original_Catalog : Catalog := This_Catalog;
    begin
        Traverse_And_Filter (Original_Catalog, The_Result);
        return (The_Result.Filtered_Catalog);
    exception
        when others =>
            raise Bad_Element;  
    end;
end Filtered_Version_Of;