Copyright Digital Equipment Corp. All rights reserved.

Attributes

 An attribute is  an  identifier  that  directs  the  VSI  Pascal
 compiler to change its behavior in some way.

 When an attribute is not explicitly stated, the compiler follows
 the  default  rules  to  assign  properties to program elements.
 However,  using  attributes  to  override  the  defaults  allows
 additional  control over the properties of data items, routines,
 and compilation units.

 Syntax of a VSI Pascal attribute:

    [ {identifier1 [[ ( { constant-expression |

      identifier2 } ,...) ]] },...  ]

 The 'identifier1' is the name of the attribute.

 The 'constant-expression' is a compile-time  integer  expression
 that qualifies several of the VSI Pascal attributes.

 The 'identifier2' is the name of an option available in  one  of
 the following cases:

  o  With the CHECK, OPTIMIZE, or KEY attributes

  o  With COMMON and PSECT attributes, indicating the name  of  a
     storage area

  o  With the GLOBAL, EXTERNAL,  WEAK_GLOBAL,  and  WEAK_EXTERNAL
     attributes, indicating an external name


 A list of attributes can appear anywhere in the VAR,  TYPE,  and
 CONST  declaration  sections,  and  anywhere in a program that a
 type, a  type  identifier,  or  the  heading  of  a  routine  or
 compilation  unit  is legal.  However, only one attribute from a
 particular class can appear in  a  given  attribute  list.   The
 names  of  attributes,  when  used in a suitable context, cannot
 conflict with other  identifiers  with  the  same  name  in  the
 program.

 Syntactically, an attribute list can appear before a VAR,  TYPE,
 and CONST section in the declaration section.  In this case, the
 attributes would  apply  to  all  elements  in  that  particular
 section.   However,  at this time, VSI Pascal only allows you to
 use the HIDDEN attribute in this way.

 Some attributes require a special form  of  constant  expression
 called  a name string.  The syntax of a name string differs from
 that of other strings in VSI Pascal only in that a  name  string
 cannot use the extended-string syntax.

 See the "HP Pascal Language Reference Manual" for  the  complete
 description of attributes.


Additional information available:

ALIGN           Alignment       Allocation      ASYNCHRONOUS    CHECK
ENUMERATION_SIZE                ENVIRONMENT     FLOAT           HIDDEN
IDENT           INHERIT         INITIALIZE      KEY             LIST
Optimize        Parameter       PEN_CHECKING_STYLE              POS
READONLY        Size            TRUNCATE        UNBOUND         UNSAFE
VALUE           Visibility      VOLATILE        WRITEONLY