PL/I Preprocessor Configuration File
PL1PreprocessorInfo.ini is the PL/I Preprocessor configuration file, which specifies parsing options, environment variables, and other settings that the user sets when working with the PL/I Preprocessor.
The configuration file is generated when a project is created, and is located in the <ProjectRootDirectory>\ConfigurationExt\ folder.
A PL1PreprocessorInfoDefaultSample.ini file is available in the <IBM AD Build Client installation folder>\Bin\Release\Samples\PL1_Preprocessor\ folder
The file follows the general format of .ini files where options are specified as key=value.
Sections and groups
Sections denote groups of options that override the options in the previous levels. Sections can
be hierarchical, names of the groups must be separated by /
.
Groups are the virtual folders that are created in the project's structure in IBM AD Build Client.
Parsing Options
The parsing options drive the way preprocessing is executed. The parsing options are described as follows:
opts.blank.chars=<character set>
Specifies the characters that can be used by the preprocessor. By default, space, tab, newline are blank characters.
opts.margins=<true/false>
Specifies whether the files can have special margins. If the option is set to
true
, you must specify both the left and right margins.opts.margins.left=<natural number>
Specifies the left side margin of the files to process, as a column number. Any text to the left of
opts.margins.left
is ignored. This option must be specified ifopts.margins=true
.opts.margins.right=<natural number>
Specifies the right side margin of the files to process, as a column number. Any text to the right of
opts.margins.right
is ignored. This option must be specified ifopts.margins=true
.opts.stringDelim=<character set>
Specifies the characters that can be used in text as string delimiters instead of the default
"
.opts.or.chars=<character set>
Specifies the characters that can be used as the
OR
operator in preprocessor directives.Note:opts.or.chars
is also used by the concatenation symbol. For example, if!
is used as theOR
operator, then concatenation symbol is!!
.opts.not.chars=<character set>
Specifies the characters that can be used as the
NOT
operator in preprocessor directives.opts.extra.lower=<character set>
Specifies the extra lowercase characters that can be used in preprocessor identifiers.
opts.extra.upper=<character set>
Specifies the extra uppercase characters that can be used in preprocessor identifiers.
Note:opts.extra.lower
andopts.extra.upper
must have the same length. Characters are matched based on their position.opts.include=<non-spaced set of characters>
Specifies a custom include directive.
Note:<character set>
is a set of characters that are surrounded by any of the following pairs of separators:{} () >< `` .. ~~ || ++ == __
.opts.library.extensions=<comma-separated list of names>
Specifies the extensions of the PL/I includes that are used by the user. For example, if the includes have
.pli
or.inc
extension, these mentioned extensions are written in theopts.library.extensions
option.opts.caseInsensitive=<true/false>
When the option is set to
true
(default), the compiler optionCASE(UPPER)
is implemented. When it is set tofalse
, the compiler optionCASE(ASIS)
is implemented.
Ignore an include member
internal.ignored.member.files=MEM1;MEM2;MEM3
Specifies the members that will be ignored at the build time.
Note: After each member you must add the;
(semicolon) separator, exception with the last member.
Other settings
source.encoding=<valid encoding>
Specifies the encoding that is used to parse files. The default is
UTF-8
. Valid encoding names are listed in List of supported encodings.default.library=SYSLIB
Specifies the default library that the PL/I preprocessor looks for includes.
internal.include.flat.layout=<true/false>
When the option is set to
true
, it forces the preprocessor to ignore the library in an include directive.
Environment variables do not have a predefined value. Subsequently, a value can be assigned to one of these variables. A variable has the following format:
vars.VARIABLENAME='value'
Configuration file example
[PL1]
source.encoding=UTF-8
opts.include=++INC
opts.stringDelim={"}
opts.extra.lower={@\#$}
opts.extra.upper={@\#$}
opts.margins.right=72
opts.margins.left=1
opts.margins=true
vars.MODE=BATCH
internal.ignored.member.files=MEMBER1;MEMBER2;MEMBER3
[PL1/Subfolder1]
opts.include=--TST
opts.stringDelim={%}
vars.MODE=CICS
[PL1/Subfolder1/Subfolder2]
opts.margins.right=20
opts.margins.left=7
[PL1/Subfolder1]
and [PL1/Subfolder1/Subfolder2]
options are used,
the actual options are compiled based on hierarchy, overwriting the parsing options present in
[PL1]
:opts.include=--TST
opts.stringDelim={%}
vars.MODE=CICS
opts.margins.right=20
opts.margins.left=7