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

⟦6282fe98c⟧ 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_028ae4

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 Ada_Program;
package Representation_Clauses is

    --
    --    The use of this system is subject to the software license terms and
    --    conditions agreed upon between Rational and the Customer.
    --
    --               Copyright 1987, 1988, 1989, 1990 by Rational.
    --
    --                          RESTRICTED RIGHTS LEGEND
    --
    --    Use, duplication, or disclosure by the Government is subject to
    --    restrictions as set forth in subdivision (b)(3)(ii) of the Rights in
    --    Technical Data and Computer Software clause at 52.227-7013.
    --
    --
    --                Rational
    --                3320 Scott Boulevard
    --                Santa Clara, California 95054
    --
    --   PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL;
    --   USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION
    --   IS STRICTLY PROHIBITED.  THIS MATERIAL IS PROTECTED AS
    --   AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF
    --   1976.  CREATED 1987, 1988, 1989, 1990.  ALL RIGHTS RESERVED.
    --


    -- LRM Chapter 13

    -- Local Renamings:
    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;
    subtype Type_Definition       is Ada_Program.Element;
    -------------------------------------------------------------------

    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_Enumeration_Representation
                (For_Enumeration_Literal : Identifier_Definition)
                return Long_Integer;
    -- Returns the representation value associated with
    --  FOR_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 A_Range                                    is Ada_Program.Element;
    subtype Record_Component_Clause                    is Ada_Program.Element;
    subtype Record_Component_Clause_Or_Pragma_Iterator is
       Ada_Program.Element_Iterator;

    function Clause_Components
                (Record_Clause : Representation_Clause)
                return Record_Component_Clause_Or_Pragma_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 (27);
end Representation_Clauses;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=19 rec1=00 rec2=01 rec3=074
        [0x01] rec0=16 rec1=00 rec2=02 rec3=05a
        [0x02] rec0=03 rec1=00 rec2=08 rec3=014
        [0x03] rec0=15 rec1=00 rec2=03 rec3=084
        [0x04] rec0=1b rec1=00 rec2=04 rec3=08e
        [0x05] rec0=1a rec1=00 rec2=05 rec3=04c
        [0x06] rec0=1b rec1=00 rec2=06 rec3=03c
        [0x07] rec0=1b rec1=00 rec2=07 rec3=001
    tail 0x2172259c683c247c6bdd8 0x42a00088462065003