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

⟦d673b5f3c⟧ TextFile

    Length: 3131 (0xc3b)
    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 Diana;
with System;
with Action;
with Directory;

package Diana_Expand is

    pragma Subsystem (Compiler_Utilities, Private_Part => Closed);
    pragma Module_Name (4, 2901);

    subtype Heap_Type is System.Segment;

    type Mapping is private;
    -- mapping from formals to actuals and from nodes to brothers


    procedure Expand_Inline_Subprogram (Subp_Id        :     Diana.Tree;
                                        Formal_Id_List :     Diana.Sequence;
                                        Actuals_List   :     Diana.Sequence;
                                        Actuals_Copy   : out Diana.Seq_Type;
                                        Block_Copy     : out Diana.Tree;
                                        Heap           :     Heap_Type);

    -- expand an inlined subprogram body



    function Copy (Node : Diana.Tree; Heap : Heap_Type) return Diana.Tree;

    -- make semantically attributed copy of a tree


    procedure Expand_Body (Instance_Id   :     Diana.Tree;
                           Instantiation :     Diana.Tree;
                           Unit_Body     : out Diana.Tree;
                           Heap          :     Heap_Type;
                           Action_Id     :     Action.Id);

    -- expand a body (if any) of a generic whose visible part has been
    -- previously expanded


    -- the following procedures are used by the semantics while
    -- checking a generic instantiation.
    -- START_ACTUAL_MAPPINGS must be called first.
    -- followed by calls to add mappings.
    -- then a call to expand the instantiation.

    procedure Start_Actual_Mappings (Map : in out Mapping; Heap : Heap_Type);

    -- setup for the mappings from formals to actuals


    procedure Add_Actual_Mapping (Formal_Id :        Diana.Tree;
                                  Actual    :        Diana.Tree;
                                  Map       : in out Mapping);

    -- add a mapping from a formal id to its corresponding actual


    procedure New_Actual_Mapping (Formal_Id :        Diana.Tree;
                                  Actual    :        Diana.Tree;
                                  Map       : in out Mapping;
                                  Result    : out    Diana.Tree);

    -- add a mapping from a formal id to its corresponding actual and return
    -- the tree for the declaration constructed


    procedure Context_Dependent_Copy (Node :        Diana.Tree;
                                      Copy : out    Diana.Tree;
                                      Map  : in out Mapping);

    -- copy a node relative to formal/actual mappings


    procedure Expand_Instantiation (Unit_Id       :        Diana.Tree;
                                    Instantiation :        Diana.Tree;
                                    Append_Trees  : out    Diana.Sequence;
                                    Map           : in out Mapping;
                                    Expand_Body   :        Boolean := True;
                                    Action_Id     :        Action.Id);

    -- expand an instantiation based on formal/actual mappings

end Diana_Expand;