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 - download
Index: ┃ B T

⟦35c397abc⟧ TextFile

    Length: 3125 (0xc35)
    Types: TextFile
    Names: »B«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦e24fb53b7⟧ 
            └─⟦this⟧ 

TextFile

with Text_Io;
package body Output_Stream is

    type Object_Structure is
        record
            File        : Text_Io.File_Type;  
            Column      : Positive := 1;
            Indentation : Integer  := 1;
        end record;

    The_Standard_Output : Object := new Object_Structure;

    function Normalised (S : String) return String is
        Start    : Integer := S'First;
        Stop     : Integer := S'Last;
        No_Blank : Boolean;
    begin
        for I in S'First .. S'Last loop  
            Start := I;
            exit when S (I) /= ' ';
        end loop;

        for I in Start .. S'Last loop
            exit when S (I) = ' ';
            Stop := I;
        end loop;
        return S (Start .. Stop);
    end Normalised;

    function Standard_Output return Object is
    begin
        return The_Standard_Output;
    end Standard_Output;

    procedure Open (The_Object : in out Object; Name : String) is
    begin
        raise Not_Implemented;
    end Open;

    procedure Align (To_Col : Positive; The_Object : Object) is
    begin
        The_Object.Column := To_Col;
    end Align;


    procedure Indent (Count : Integer; The_Object : Object) is
    begin
        The_Object.Indentation := The_Object.Indentation + Count;
        if The_Object.Indentation <= 1 then
            The_Object.Indentation := 1;
        end if;
        The_Object.Column := The_Object.Indentation;
    end Indent;

    procedure Indent_Right (The_Object : Object) is
    begin
        Indent (+2, The_Object);
    end Indent_Right;

    procedure Indent_Left (The_Object : Object) is
    begin
        Indent (-2, The_Object);
    end Indent_Left;

    procedure Put (B : Boolean; To : Object) is
    begin
        Put (Normalised (Boolean'Image (B)), To);
    end Put;


    procedure Put (C : Character; To : Object) is
    begin
        Put ("" & C, To);
    end Put;


    procedure Put (I : Integer; To : Object) is
    begin
        Put (Normalised (Integer'Image (I)), To);
    end Put;

    procedure Put (S : String; To : Object) is
    begin  
        Text_Io.Set_Col (To.File, Text_Io.Positive_Count (To.Column));
        Text_Io.Put (To.File, S);
        To.Column := To.Column + S'Length;
    end Put;


    procedure New_Line (To : Object; Count : Positive := 1) is
    begin
        Text_Io.New_Line (To.File, Text_Io.Positive_Count (Count));
        To.Column := To.Indentation;
    end New_Line;

    procedure Put_Line (B : Boolean; To : Object) is
    begin
        Put (B, To);
        New_Line (To);
    end Put_Line;

    procedure Put_Line (C : Character; To : Object) is
    begin
        Put (C, To);
        New_Line (To);
    end Put_Line;

    procedure Put_Line (I : Integer; To : Object) is
    begin
        Put (I, To);
        New_Line (To);
    end Put_Line;

    procedure Put_Line (S : String; To : Object) is
    begin
        Put (S, To);
        New_Line (To);
    end Put_Line;
begin
    Text_Io.Open (File => The_Standard_Output.File,
                  Mode => Text_Io.Out_File,
                  Name => Text_Io.Name (Text_Io.Standard_Output));
end Output_Stream;