The Compiler supplies the required additional attributes, as follows:
Specified
|
Missing
|
Supplied
|
binary
|
fixed | float
|
fixed
|
decimal
|
fixed | float
|
fixed
|
fixed
|
binary | decimal
|
decimal
|
float
|
binary | decimal
|
decimal
|
static
|
internal | external
|
internal
|
bit
|
length
|
length of one
|
character
|
length
|
length of one
|
area
|
size
|
size of 1000
|
Defaults are also supplied for the following conditions.
- STATIC is supplied if EXTERNAL is specified without a storage class and the declared name is not an entry or file constant.
- AUTOMATIC is supplied if the name is the name of a nonparameter variable that is not a member of a structure and no storage class was specified.
- The default precision is supplied if precision is not specified for arithmetic data. For information on the Open PL/I default precisions, see your Open PL/I User's Guide.
- VARIABLE is supplied if a storage class, array bounds, or member's level number is specified with FILE or ENTRY.
- EXTERNAL is supplied if FILE or ENTRY is specified and VARIABLE is neither specified nor supplied under the previous rule. In this case, the named object is a constant rather than a variable.
- UNALIGNED is supplied for bit-string data; ALIGNED for all other types of data.