Preprocessor references and expressions are written and evaluated the same way as PL/I references and expressions are, with the following restrictions:
- Operands of a preprocessor expression can consist only of preprocessor variables, references to preprocessor procedures, fixed decimal constants, bit constants, character constants, and references to preprocessor built-in functions. Strings or character constants are limited in size to 1023 characters.
- The exponent symbol (**) cannot be used. When found, it is converted to a plus symbol (+) and a warning message is issued.
- For arithmetic operations, only decimal arithmetic of precision (5.0) is performed; that is, each operand is converted to a decimal fixed-point integer value of precision (5,0) before the operation is performed, and the decimal fixed-point result is converted to precision (5,0). When the value of an operand or a result of an operation exceeds 99999 (the limit of precision (5,0)) that value is set to zero.
- The concatenation of strings is limited to 2047 characters.