Macro Preprocessor Options

The options available for use with the mfpp command are explained in the following table. The -ipath and -suffix options obey the rules that apply when they are invoked as compiler options.

Option Explanation
-currency_symbol Provides a currency symbol for picture specification. It can take the character, decimal number, or hex constant of the form 0xDD, for example, -currency_symbol £, -currency_symbol 163, -currency_symbol 0xa3.
-define name[=value] mynum[='value' (value)]      Using name[=value] causes value to be used in place of name wherever the identifier name appears.

Using mynum[='value' (value)] defines a preprocessor variable called MYNUM to the PL/I Macro Preprocessor. The presence or absence of single quotes around the value determines whether the defined variable is of type CHAR or type FIXED.

For example, -define mynum='1234' defines the variable as type CHAR. It is equivalent to coding the following in the PL/I program processed by the macro preprocessor:
%DCL MYNUM CHAR;
%MYNUM = '1234';
To define a FIXED type variable, omit the quotes and use a numeric value. For example, -define mynum=1234 is equivalent to coding the following in the PL/I program processed by the macro preprocessor:
%DCL MYNUM FIXED;
%MYNUM = 1234;

On UNIX/LINUX, any single quotes around the value are stripped prior to being handled by the macro preprocessor. So for example, -define mynum='1234' is interpreted by the macro preprocessor as -define mynum=1234, thereby defining MYNUM as of type FIXED instead of type CHAR.

To define MYNUM as a CHAR preprocessor variable, you must add an additional set of double quotes around the single quoted string. For example, -define mynum="'1234'" is equivalent to coding the following in the PL/I program processed by the macro preprocessor:

%DCL MYNUM CHAR;
%MYNUM = '1234';
-incafter filename     Allows for the use of an include file without having to modify sources. The named file is infused as the first line of source.
-includes Tells the preprocessor to process %INCLUDE statements.
-ipath dir The -ipath and -isuffix options obey the rules that apply when they are invoked as Compiler options. This option specifies the folder location to search for include files.
-isuffix suffix (or -x suffix) The -ipath and -isuffix options obey the rules that apply when they are invoked as compiler options.
-margins I,r Sets the margins within which characters of the source file are interpreted as source code and outside which all characters are ignored by the Compiler. l is the column number of the leftmost character and r is the column number of the rightmost character to be interpreted as source code. Note that, if tabs are used, each tab is counted as a single character.

The -margins option on a *PROCESS card is ignored if the macro pre-processor is in use (either by executing mfpp or mfplx with the -macro option); in this case, if the source margins are not 1,256, the actual margins must be specified with the -margins option.

-nodebuginfo Specifies that the preprocessor will not generate the normal debug information that it passes to the Compiler. This is useful if you wish to debug using the post-preprocessing PL/I source file rather than the original source file.
-noincludes Tells the preprocessor not to handle %INCLUDE statements.
-[no]namesstring1 [string2] Provides extended character support. For example,
-names 'string1' ['string2']
where string1 are extralingual characters to add to identifiers, and string2 are optional corresponding uppercase characters. Hex constants of the form 0xDD are accepted in place of the strings. The default is -names.
-not_symbol Provides a not symbol. It can take the character, decimal number, or hex constant of the form 0xDD.
-or_symbol Provides an or symbol. It can take the character, decimal number, or hex constant of the form 0xDD.
-pp outfile (or -o outfile) Names the output file the name you specify with outfile. If -pp is not specified, the default name of the file is xxx.pp, where xxxis the input filename up to, but not including, the last "." (if any) in the name. For example, if the input filename is prog.pl1, the default output filename is prog.pp.
-T Causes the preprocessor to examine a %INCLUDE file name for the characters @, #, and $, and to replace @ with A, # with N, and $ with D.
-undefine name Removes a definition for name, if name was created by a -define option, and leaves the identifier name in the source as name. It does not preclude a %REPLACE statement or %name=expr from changing the value of name.
-variant string Supplies a string to be used in place of the VARIANT built-in function.