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

⟦cba9f5a35⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Representation_Clauses, pragma Module_Name 4 3575, pragma Subsystem Design_Facility, seg_001c7e

Derivation

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

E3 Source Code



with Ada_Program;
package Representation_Clauses is

    -- LRM Chapter 13

    -- Local Renamings:
    subtype Type_Definition       is Ada_Program.Element;
    subtype Declaration           is Ada_Program.Declaration;
    subtype Expression            is Ada_Program.Expression;
    subtype Identifier_Definition is Ada_Program.Identifier_Definition;
    subtype Representation_Clause is Ada_Program.Representation_Clause;
    -------------------------------------------------------------------

    type Representation_Clause_Kinds is (A_Length_Clause,  
                                         An_Enumeration_Representation_Clause,  
                                         A_Record_Representation_Clause,  
                                         An_Address_Clause,  
                                         Not_A_Representation_Clause);

    function Kind (Clause : Representation_Clause)
                  return Representation_Clause_Kinds;


    function Associated_Type
                (Clause : Representation_Clause) return Type_Definition;
    -- Returns the definition of the type specified in the length clause,
    -- enumeration representation clause or record representation clause.


    function Associated_Size (For_Type : Type_Definition) return Expression;
    -- Returns the expression that describes the size associated with a type
    --  definition if there is a rep spec associated with this type,
    --  NIL_ELEMENT otherwise.


    function Associated_Storage_Size
                (For_Type : Type_Definition) return Expression;
    -- Returns the expression that describes the size associated with a type
    --  definition. Valid for access and task types and their derived types.


    function Associated_Enumeration_Representation
                (For_Enumeration_Literal : Identifier_Definition)
                return Expression;
    -- Returns the expression that describes the representation of
    --  enumeration literal.


    function Associated_Record_Representation
                (Record_Or_Component : Ada_Program.Element)
                return Representation_Clause;
    -- Returns the representation spec associated with the element.


    function Associated_Address
                (For_Element : Ada_Program.Element) return Ada_Program.Element;
    -- Returns the element that defines the address value of FOR_ELEMENT,
    --  valid for VARs, CONSTANTs, PACKAGEs, ENTRYs and TASK SPECs (or
    --  their associated IDs).


    --  For all the above routines, if no associated element exists
    --  a NIL_ELEMENT is returned.


    -------------------------------------------------------------------
    -- LRM 13.2

    type Length_Clause_Attribute_Kinds is (Size,  
                                           Collection_Storage_Size,  
                                           Task_Storage_Size,  
                                           Small);

    function Attribute_Kind (A_Length_Clause : Representation_Clause)
                            return Length_Clause_Attribute_Kinds;


    -------------------------------------------------------------------
    -- LRM 13.3

    function Representation_Aggregate
                (Enumeration_Clause : Representation_Clause) return Expression;
    -- Returns the aggregate of the representation clause.


    -------------------------------------------------------------------
    -- LRM 13.4

    function Alignment_Expression
                (Record_Clause : Representation_Clause) return Expression;
    -- Returns the alignment expression for the representation clause.
    -- If an alignment expression is not present, a nil element is
    -- returned.

    subtype Record_Component_Clause is Ada_Program.Element;
    subtype A_Range                 is Ada_Program.Element;

    function Clause_Components (Record_Clause : Representation_Clause)
                               return Ada_Program.Element_Iterator;
    -- Returns a list of the components of the record clause in order
    -- of appearance.


    function Valid_Component
                (Component_Clause : Record_Component_Clause) return Boolean;
    -- Some components can be PRAGMAs, this return true if this component
    -- is NOT a pragma.


    function Component_Name
                (Component_Clause : Record_Component_Clause) return String;
    -- Returns the name of the component.


    function Component_Offset
                (Component_Clause : Record_Component_Clause) return Expression;
    -- Returns the offset expression for the component.


    function Component_Range
                (Component_Clause : Record_Component_Clause) return A_Range;
    -- Returns the range constraint for the component.


    -------------------------------------------------------------------
    -- LRM 13.5

    function Addressed_Declaration
                (Address_Clause : Representation_Clause) return Declaration;
    -- Returns the declaration of the object, subprogram or entry
    -- whose address is being specified.


    function Address_Expression
                (Address_Clause : Representation_Clause) return Expression;
    -- Returns the expression for the address of the declaration.

    -----------------------------------------------------------

    pragma Subsystem (Design_Facility, Closed);
    pragma Module_Name (4, 3575);
    pragma Bias_Key (109);
end Representation_Clauses;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=19 rec1=00 rec2=01 rec3=01a
        [0x01] rec0=01 rec1=00 rec2=08 rec3=012
        [0x02] rec0=15 rec1=00 rec2=02 rec3=038
        [0x03] rec0=1c rec1=00 rec2=03 rec3=024
        [0x04] rec0=19 rec1=00 rec2=04 rec3=042
        [0x05] rec0=00 rec1=00 rec2=07 rec3=020
        [0x06] rec0=1e rec1=00 rec2=05 rec3=046
        [0x07] rec0=0f rec1=00 rec2=06 rec3=000
    tail 0x20100f75a7da18dcc5452 0x42a00088462065003