PL/I macros that activate variables
Several PL/I macros shipped with Language Environment activate (%ACT) variables on behalf of the user program. Using them, code developers can use common Language Environment data types. Use of these variable names by a user program will result in a compile error. Table 1 lists the macros and the preprocessor variable names.
- Storage class attributes (such as BASED)
- Scope attributes (such as EXTERNAL)
- Alignment attributes (such as ALIGNED)
- Aggregation attributes, including dimensions and structure level numbers; in fact, some of the data types require the use of level numbers
- Arithmetic attributes, including BASE, SCALR, MODE, PRECISION and PICTURE
- String attributes, including BIT, CHAR, GRAPHIC, VARYING and PICTURE
- Program control data Attributes, including AREA, ENTRY, FILE, LABEL, OFFSET, POINTER, TASK and VARIABLE
- The LIKE attribute, although you can LIKEn another identifier to one declared using the Language Environment data types
It is strongly recommended that you always code the Language Environment data type as the last attribute in any identifier's declaration. Unlike true PL/I attributes, order sometimes counts.
There is another difference between these Language Environment data types and true PL/I attributes: some of them may not be used as parameter descriptors (in the parameter list of the ENTRY attribute). Consequently, some of the data types are available in two forms: with and without a "_PARM" suffix. In these cases, you must use the _PARM version when you specify a parameter descriptor, and the other version in all other contexts.
One final difference between the Language Environment data types in the following tablet and true PL/I attributes which you must be aware of is that the Language Environment data types must be treated as reserved words. Whereas PL/I attribute names can also be used as identifier names, the Language Environment data type names may not be used in any context other than that of an attribute.
PL/I macro | Variables activated |
---|---|
CEEIBMAW | INT2 |
INT4 | |
FLOAT4 | |
FLOAT8 | |
FLOAT16 | |
COMPLEX4 | |
COMPLEX8 | |
COMPLEX16 | |
VSTRING | |
VSTRING_PARM | |
CHAR80 | |
FEEDBACK | |
FEED_BACK | |
FEEDBACK_PARM | |
FEED_BACK_PARM | |
CEE_ENTRY | |
CEE_ENTRY_PARM | |
CEEIBMCT | FBCHECK |