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: ┃ T V

⟦9dfdca73a⟧ TextFile

    Length: 3830 (0xef6)
    Types: TextFile
    Names: »V«

Derivation

└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
    └─ ⟦124ff5788⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 

TextFile

-------------------------------------------------------------------------------
with Umps_Defs;

package Slot is

    type Element is private;
    type Kind    is (Integer, String, Character, Boolean, Void);


    function Make (The_Variable : Standard.String; With_Kind : Kind)
                  return Element;
    -- make an element with empty value

    function Make (The_Variable : Standard.String;
                   With_Value   : Standard.Integer)   return Element;
    function Make (The_Variable : Standard.String; With_Value : Standard.String)
                  return Element;
    function Make (The_Variable : Standard.String;
                   With_Value   : Standard.Character) return Element;
    function Make (The_Variable : Standard.String;
                   With_Value   : Standard.Boolean)   return Element;
    -- make an element with a specific value


    function Name_Of (The_Element : Element) return Standard.String;

    function Kind_Of (The_Element : Element) return Kind;
    -- used to avoid raising the Illegal_Access_Error exception

    function Is_Empty_Value (The_Element : Element) return Standard.Boolean;
    -- used to avoid raising the Empty_Value_Error exception

    function Value_Of (The_Element : Element) return Standard.String;
    function Value_Of (The_Element : Element) return Standard.Integer;
    function Value_Of (The_Element : Element) return Standard.Character;
    function Value_Of (The_Element : Element) return Standard.Boolean;
    -- Empty_Value_Error will be raises if Is_Empty_Value (The_Element) is true.
    -- Illegal_Access_Error is raised when an illegal access on value is trying
    -- (ie. accessing for an Integer value when the element is a String).

    Illegal_Access_Error : exception;
    -- raised by accessing values when the element have not the desired value
    Empty_Value_Error : exception;
    -- raised by accessing values when the element is empty
    -- (ie. Is_Empty_Value is true)


    type Fields is (On_Name, On_Kind, On_Value, On_None);

    generic
        Field : Fields := On_Value;
    function Is_Equal (Left, Right : Element) return Standard.Boolean;

    generic
        Field : Fields := On_Value;
    function Is_Less (Left, Right : Element) return Standard.Boolean;

    generic
        Field : Fields := On_Value;
    function Is_Most (Left, Right : Element) return Standard.Boolean;

    -- Fields
    --      Name  : Name_Of (Left) <op> Name_Of (Right)
    --      Kind  : Name and Kind_Of( Left) <op> Kind_Of (Right)
    --      Value : Name and Kind and Value_Of (Left) <op> Value_of (Right)


    function  Image   (The_Element : Element) return Standard.String;
    procedure Display (The_Element   : Element;
                       String_Before : Standard.String := "");

-------------------------------------------------------------------------------
private
    type Value (Is_Kind_Of : Kind := Void) is
        record  
            case Is_Kind_Of is
                when String =>
                    String : Umps_Defs.String := (others => Ascii.Nul);
                when Integer =>
                    Integer : Standard.Integer := 0;
                when Character =>
                    Character : Standard.Character := Ascii.Nul;
                when Boolean =>
                    Boolean : Standard.Boolean := False;
                when Void =>
                    Void : Standard.Character := Ascii.Nul;
            end case;
        end record;

    type Element is
        record
            The_Name  : Umps_Defs.Name   := Umps_Defs.Null_Name;
            The_Kind  : Kind             := Void;  
            Empty     : Standard.Boolean := True;  
            The_Value : Value;  
        end record;
end Slot;
-------------------------------------------------------------------------------