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

⟦0748edd6f⟧ TextFile

    Length: 6641 (0x19f1)
    Types: TextFile
    Names: »V«

Derivation

└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦9b46a407a⟧ 
            └─⟦c84a2ac9b⟧ 
                └─⟦this⟧ 

TextFile

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;