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

⟦4675bd51a⟧ TextFile

    Length: 4238 (0x108e)
    Types: TextFile
    Names: »V«

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 Directory;
with Diana;
package Diana_Utilities is

    type Iterator is private;

    -- An ordered set of Elements.

    procedure Next (Iter : in out Iterator);
    function Done (Iter : Iterator) return Boolean;
    function Value (Iter : Iterator) return Diana.Tree;

    procedure Reset (Iter : in out Iterator);

    function Name (Declaration : Diana.Tree) return String;

    function Is_Subprogram (A_Declaration : Diana.Tree) return Boolean;

    type Operator is (And_Op, Or_Op, Xor_Op, Eq_Op, Lt_Op, Lt_Eq_Op,
                      Gt_Op, Gt_Eq_Op, Plus_Op, Minus_Op, Concat_Op,
                      Unary_Plus_Op, Unary_Minus_Op, Mult_Op, Div_Op, Mod_Op,
                      Rem_Op, Exp_Op, Abs_Op, Not_Op, Not_An_Operator);

    function Operator_Kind (Function_Decl : Diana.Tree) return Operator;

    function Image (Op : Operator) return String;
    function Operator_Name (Function_Decl : Diana.Tree) return String;
    type Parameter_Modes is (Default_In_Mode, In_Mode, Out_Mode, In_Out_Mode);

    function Parameter_Mode (Of_Parameter : Diana.Tree) return Parameter_Modes;

    function Parameters (Procedure_Or_Function : Diana.Tree) return Iterator;

    -- Returns an ordered list of formal parameter declarations.
    -- Operations for object declarations may be used to analyze
    -- parameters

    function All_Ids (Of_Parameter : Diana.Tree) return Iterator;


    function Return_Type (Of_Function : Diana.Tree) return Diana.Tree;

    function Object_Type
                (Object_Decl_Or_Object_Id : Diana.Tree) return Diana.Tree;

    type Declaration_Kinds is
       (A_Variable_Declaration, A_Constant_Declaration,
        An_Integer_Number_Declaration, A_Real_Number_Declaration,

        A_Type_Declaration, A_Private_Type_Declaration, A_Subtype_Declaration,

        A_Package_Declaration, A_Package_Body_Declaration,

        A_Procedure_Declaration, A_Procedure_Body_Declaration,

        A_Function_Declaration, A_Function_Body_Declaration,

        A_Package_Rename_Declaration, A_Procedure_Rename_Declaration,
        A_Function_Rename_Declaration, An_Object_Rename_Declaration,
        An_Exception_Rename_Declaration,

        A_Generic_Package_Declaration, A_Generic_Procedure_Declaration,
        A_Generic_Function_Declaration,

        A_Package_Instantiation, A_Procedure_Instantiation,
        A_Function_Instantiation,

        A_Task_Declaration, A_Task_Body_Declaration, A_Task_Type_Declaration,

        An_Entry_Declaration,

        An_Exception_Declaration,

        A_Procedure_Subunit, A_Function_Subunit,
        A_Package_Subunit, A_Task_Subunit,

        Not_A_Declaration);

    function Kind (Declaration : Diana.Tree) return Declaration_Kinds;

    type Type_Definition_Kind is
       (A_Subtype_Indication, An_Enumeration_Type_Definition,
        An_Integer_Type_Definition,
        A_Float_Type_Definition, A_Fixed_Type_Definition,
        An_Array_Type_Definition, A_Record_Type_Definition,
        An_Access_Type_Definition, A_Derived_Type_Definition,
        A_Task_Type_Definition, Not_A_Type_Definition);



    function Type_Kind (A_Type_Definition : Diana.Tree)
                       return Type_Definition_Kind;


    function Is_Predefined (Type_Def : Diana.Tree) return Boolean;

    function Is_String (Type_Def : Diana.Tree) return Boolean;
    function Is_Boolean (Type_Def : Diana.Tree) return Boolean;
    function Is_Character (Type_Def : Diana.Tree) return Boolean;


    function Is_Duration (Type_Def : Diana.Tree) return Boolean;
    function Is_Positive (Type_Def : Diana.Tree) return Boolean;
    function Is_Natural (Type_Def : Diana.Tree) return Boolean;
    function Is_Long_Integer (Type_Def : Diana.Tree) return Boolean

                ;
    function Base_Type (A_Subtype : Diana.Tree) return Diana.Tree;
    function Convert (Declaration : Directory.Object) return Diana.Tree;
    Inappropriate_Program_Element : exception;
private

    type Iterator_Kinds is (Sequence, Seq_Type, None);

    type Iterator is
        record
            Kind : Iterator_Kinds := None;
            Sequence_Root, Sequence_Current : Diana.Sequence;
            Seq_Type_Root, Seq_Type_Current : Diana.Seq_Type;
        end record;
end Diana_Utilities;