The PGMINFO keyword specifies how program-interface information is to be
generated for the module or program.

- *NO
- Specifying *NO indicates that no program-interface information
is to be generated.
- *PCML
- Specifying *PCML indicates that program-interface information
is to be generated in the form of Program Call Markup Language.
- *MODULE
- Specifying *MODULE indicates that program-interface
information is to be generated directly into the module.
If the module is
later used to create a program or service program, the program-interface information
will also be placed in the program or service program. The information can
then be retrieved using API QBNRPII.
- *DCLCASE
- Specifying *DCLCASE indicates that the names in the PCML will
be generated in the declaration case of the name.
See The declaration case of a name.
The first parameter must be one of *NO, *PCML, or *DCLCASE.
Additional parameters are not allowed if the first parameter is *NO or *DCLCASE.
If the first parameter is *PCML, at least one additional parameter is required.
The additional parameters can be *DCLCASE or *MODULE or both.
The PGMINFO setting defaults to the values specified on the PGMINFO and
INFOSTMF parameters of the CRTRPGMOD or CRTBNDRPG command. If the PGMINFO
keyword conflicts with the PGMINFO and INFOSTMF command parameters, the value
of the Control specification keyword overrides the values specified on the
command. However, if the requests from the command parameters and the PGMINFO
keyword are different but not in conflict, the compiler will merge the values
of the command parameters and the PGMINFO keyword.

The declaration case of a name
- If a data structure, field, or subfield is defined by a definition statement,
the case used for the definition statement is considered to be the declaration case of the name.
- If a data structure is defined as a LIKEREC data structure,
then the declaration case of the subfields is upper case.
- If a data structure is defined as an externally-described data structure,
then the declaration case of the subfields is upper case unless the subfield appears on an external subfield statement.
- If a field is not defined by a definition statement,
then the declaration case is the case used for the first occurrence of any of the following uses of the name in the source:
- An input specification
- A fixed-form calculation specification where the length entry is specified
- A *LIKE DEFINE statement where the name appears in the Result field entry
- If a data structure is defined using LIKEDS,
then the subfields of the new data structure will have the same declaration case as the subfield of the parent data structure.
- The declaration case of a procedure is the case of the name specified
in the DCL-PROC or Procedure-Begin statement for the procedure.
