DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦90ed96944⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Diana_Expand, pragma Module_Name 4 2901, pragma Subsystem Compiler_Utilities, seg_006392

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



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;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=22 rec1=00 rec2=01 rec3=00a
        [0x01] rec0=19 rec1=00 rec2=02 rec3=002
        [0x02] rec0=16 rec1=00 rec2=03 rec3=070
        [0x03] rec0=07 rec1=00 rec2=04 rec3=000
    tail 0x21701a77881bf8080a92e 0x42a00088462065003