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

⟦db5d20eb7⟧ TextFile

    Length: 6192 (0x1830)
    Types: TextFile
    Names: »V«

Derivation

└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦9b46a407a⟧ 
            └─⟦12c68c704⟧ 
                └─⟦this⟧ 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦458657fb6⟧ 
            └─⟦220843204⟧ 
                └─⟦this⟧ 

TextFile

with System;
with Machine;
with Action;
with Diana;
with Error_Messages;
with Directory;
with Switch_Implementation;
with Units_In_Program;

package R1000_Code_Generator is

    package Switch renames Switch_Implementation;

    pragma Consume_Offset;

    package Switches is

        procedure Set_Global_Tracing (On : Boolean := True);


        -- each form of Set may raise switch.undefined_switch_name

        procedure Set (Switches  : in out Switch.File;
                       Switch    :        String;
                       Value     :        Boolean;
                       Action_Id :        Action.Id := Action.Null_Id);


        procedure Set (Switches  : in out Switch.File;
                       Switch    :        String;
                       Value     :        Integer;
                       Action_Id :        Action.Id := Action.Null_Id);


        procedure Set (Switches  : in out Switch.File;
                       Switch    :        String;
                       Value     :        String;
                       Action_Id :        Action.Id := Action.Null_Id);


        procedure Cmd_Set (Switch : String; Value : Boolean);


        procedure Cmd_Set (Switch : String; Value : Integer);


        procedure Cmd_Set (Switch : String; Value : String);
    end Switches;


    -- the following generic should be instantiated with the same
    -- put and new_line procedures used to instantiate diana.symbolic_io;
    -- the result is passed to symbolic_io as print_other_attrs.

    generic
        with procedure Put (S : String);
        with procedure New_Line;
    package Attr_Display is
        procedure Print_Cg_Attrs (Node : Diana.Tree; Indent : Integer);
    end Attr_Display;


    package Exported_Attrs is

        -- FILE ATTRIBUTES

        function Has_Code_Segment (T : Diana.Tree) return Boolean;
        function Get_Code_Segment (T : Diana.Tree) return Directory.Object;

        function Has_List_File (T : Diana.Tree) return Boolean;
        function Get_List_File (T : Diana.Tree) return Directory.Object;

        function Has_Asm_File (T : Diana.Tree) return Boolean;
        function Get_Asm_File (T : Diana.Tree) return Directory.Object;

        function Has_Debug_List_File (T : Diana.Tree) return Boolean;
        function Get_Debug_List_File (T : Diana.Tree) return Directory.Object;

        function Has_Elab_Code_Segment (T : Diana.Tree) return Boolean;
        function Get_Elab_Code_Segment (T : Diana.Tree) return Directory.Object;

        function Has_Elab_List_File (T : Diana.Tree) return Boolean;
        function Get_Elab_List_File (T : Diana.Tree) return Directory.Object;

        function Has_Elab_Asm_File (T : Diana.Tree) return Boolean;
        function Get_Elab_Asm_File (T : Diana.Tree) return Directory.Object;


        -- CG_LEVEL
        -- The control stack lexical level for an object
        -- Attached to all id nodes which correspond to runtime objects

        function Get_Level (Node : Diana.Tree) return Integer;


        -- CG_OFFSET
        -- The control stack offset of a variable
        -- or the field index of a record field
        -- Attached to all id nodes which correspond to runtime objects or
        -- are record fields

        function Get_Offset (Node : Diana.Tree) return Integer;
        function Has_Offset (Node : Diana.Tree) return Boolean;


        -- CG_INT_VALUE
        -- simplified value of expression for debugger
        -- can be attached to any expression

        function Has_Int_Value (Node : Diana.Tree) return Boolean;
        function Get_Int_Value (Node : Diana.Tree) return Integer;


        -- CG_VARIABLE_SIZE_FIELD
        -- True if the field type has a dependent discriminant constraint
        -- Attached to field_ids

        function Is_Variable_Size (Defn : Diana.Tree) return Boolean;


        -- CG_VARIANT_FIELD
        -- True if the field is a variant field
        -- Attached to field_ids

        function Is_Variant_Field (Defn : Diana.Tree) return Boolean;


        -- CG_STMT_NUMBER
        -- Attached to all dn_accept nodes and dn_block nodes which represent
        -- block statements.
        -- Gives the source statement number of the accept or block.

        function Has_Stmt_Number (Node : Diana.Tree) return Boolean;
        function Get_Stmt_Number (Node : Diana.Tree) return Integer;


        -- RCG_MAJOR_VERSION
        -- RCG_MINOR_VERSION
        -- attached to comp_unit
        -- indicates version of Rcg that was last used on this unit

        function Has_Rcg_Major_Version (Node : Diana.Tree) return Boolean;
        function Get_Rcg_Major_Version (Node : Diana.Tree) return Integer;

        function Has_Rcg_Minor_Version (Node : Diana.Tree) return Boolean;
        function Get_Rcg_Minor_Version (Node : Diana.Tree) return Integer;

        -- CG_COUPLER_SUBPROGRAM
        -- indicates whether subprogram is special coupler subprogram

        function Is_Coupler_Subprogram (Node : Diana.Tree) return Boolean;

        -- CG_UNITS_IN_PROGRAM

        function Get_Units_In_Program (Main_Unit_Id : Diana.Tree)
                                      return Units_In_Program.Library_Unit_List;
        function Has_Units_In_Program
                    (Main_Unit_Id : Diana.Tree) return Boolean;

        -- CG_ELAB_SEG_NUMBER

        function Has_Elab_Seg_Number (Main_Unit_Id : Diana.Tree) return Boolean;
        function Get_Elab_Seg_Number (Main_Unit_Id : Diana.Tree) return Integer;

        -- CG_SEG_NUMBER

        function Has_Seg_Number (Unit_Id : Diana.Tree) return Boolean;
        function Get_Seg_Number (Unit_Id : Diana.Tree) return Integer;

        function Is_Inline_Frame (Frame : Diana.Tree) return Boolean;
        -- Kind (Frame) is:  dn_block (a block statement)
        --                   dn_proc_id, dn_function_id, dn_def_op
        --                   (as_designator of first id of subprogram)

        function Is_Integrated_Package (Package_Id : Diana.Tree) return Boolean;
        -- Kind (Package_id) is dn_package_id (the cg_first id).

    end Exported_Attrs;

    pragma Subsystem (R1000_Code_Gen);
    pragma Module_Name (4, 1601);
end R1000_Code_Generator;