转换程序选项

命令级别语言转换程序具有可用于转换 COBOL、C、C++、PL/I 和汇编程序的选项列表。 解释了每个转换程序选项,并列出了您可以使用的语言。

APOST
(仅限 COBOL)
APOST 指示文字由撇号或引号描述。 QUOTE 是备用选项,指示双引号。

此转换程序选项确定 COBOL 源代码中所有定界符的相应值,包括副本中的定界符, CICS® 语句和源中的 COBOL 字面值。 虽然 COBOL 允许 COBOL 源代码中的定界符在同一程序中为单引号,引号或两者的混合,但如果使用 CICS 独立转换程序,那么 COBOL 程序中的所有开始和结束定界符都必须与指定的 CICS 选项匹配。 跨多行继续的字面值还必须以指定的定界符开头和结尾。

请注意, CICS提供的 COBOL 副本具有单引号。 如果要在应用程序中使用任何 CICS提供的副本来接口到 CICS 组件,请确保使用 APOST 选项 (而不是 QUOTE 选项) ,并相应地对程序中的定界符进行编码。

CBLCARD
(仅限 COBOL) 缩写 :CBL
CBLCARD 指定转换程序将生成 CBL 语句。 CBLCARD 是缺省值; 备用值为 NOCBLCARD
CICS
CICS 指定转换程序将处理 EXEC CICS 命令。 它是转换程序中的缺省规范。 CICS 也是用于指定转换程序选项的 XOPTS 关键字的旧名称,这意味着您可以通过将 CICS 选项包含在 XOPTS 列表中,或者使用该选项代替 XOPTS 对列表进行命名来显式指定该选项。 指示没有 CICS 命令的唯一方法是在不使用选项 CICS 的情况下使用 XOPTS 关键字。 必须使用 EXEC DLI 命令在批处理 DL/I 程序中执行此操作。 例如,要翻译以汇编语言编写的批处理 DL/I 程序,请指定:
*ASM XOPTS(DLI)
要转换使用 COBOL 编写的批处理程序 (包含 EXEC API 命令) ,请指定:
CBL XOPTS(EXCI)
COBOL2
(仅限 COBOL) 缩写: CO2
COBOL2 指定转换程序将生成临时变量以在转换后的 EXEC 语句中使用。 在所有其他方面,将以与 COBOL3 选项相同的方式转换程序。 COBOL2COBOL3 互斥。 COBOL2 是 COBOL 的缺省值。
注: 如果通过不同的方法指定 COBOL2COBOL3 ,那么无论在何处指定了两个选项,都将始终使用 COBOL3 选项。 如果同时指定 COBOL2COBOL3 ,那么转换程序将发出警告消息。
COBOL3
(仅限 COBOL) 缩写: CO3
COBOL3 指定转换程序将转换符合 Language Environment 的程序。 COBOL3COBOL2 选项互斥。 有关可用的符合语言环境的编译器的信息,请参阅 编程语言和语言环境
CPP
(仅 C++)
CPP 指定转换程序将转换 C++ 程序以供受支持的 C++ 编译器编译。
CPSM
CPSM 指定转换程序将处理 EXEC CPSM 命令。 替代方法为 NOCPSM ,这是缺省值。
DBCS
(仅限 COBOL)
DBCS 指定源程序可能包含双字节字符。 DBCS 选项使转换程序将十六进制代码 X'0E'X'0F' 分别视为移出 (SO) 和移入 (SI) 代码,无论它们出现在程序中的任何位置。
有关如何使用 DBCS 在 COBOL 中编程的更多详细信息,请参阅 Enterprise COBOL for z/OS Language Reference中有关 DBCS 字符串的部分。
DEBUG
(仅限 COBOL , C , C++ 和 PL/I)
DEBUG 指示转换程序生成将行号传递到 CICS 以供执行诊断工具 (EDF) 使用的代码。 DEBUG 是缺省值; NODEBUG 是替代值。
DLI
DLI 指定转换程序将处理 EXEC DLI 命令。 必须使用 XOPTS 选项 (即 XOPTS(DLI)) 来指定该值。
EDF
EDF 指定执行诊断工具将应用于程序。 缺省值为 EDF ; 备用值为 NOEDF
EPILOG
(仅限汇编语言)
EPILOG 指定转换程序在要转换的程序结束时插入宏 DFHEIRET。 DFHEIRET 将控制权从发出程序返回给调用它的程序。 如果要使用 RETURN 命令的任何选项,请使用 RETURN 并指定 NOEPILOG

EPILOG 是缺省值; 备用 NOEPILOG 阻止转换程序插入宏 DFHEIRET。 (请参阅 DFHECALL 宏 以获取有关 DFHEIRET 宏的编程信息。)

EXCI
EXCI 指定转换程序将处理外部 CICS 接口 (EXCI) 的 EXEC API 命令。 EXCI API 命令必须仅在批处理程序中使用,因此 EXCI 转换程序选项与 CICS 转换程序选项或暗示 CICS 选项的任何转换程序选项互斥。 如果同时指定了 CICS 和 EXCI ,或者指定了包含 CICS 的 EXCI 和转换程序选项,那么将生成错误消息。
EXCI 选项也与 DLI 选项互斥。 无法使用 EXEC DLI 命令在批处理程序中对外部 CICS 接口的 EXEC API 命令进行编码。 如果同时指定了 EXCI 和 DLI 转换程序命令,那么将生成错误消息。
EXCI 转换程序选项由 XOPTS (即 XOPTS (EXCI)) 指定。
FEPI
FEPI 允许访问 CICS 前端编程接口 (FEPI) 的 FEPI API 命令。 替代方法为 NOFEPI 。 有关 FEPI 的更多信息,请参阅 使用 FEPI API 进行开发
FLAG (I , W , E 或 S)
(仅限 COBOL , C , C++ 和 PL/I) 缩写 :F
FLAG 指定需要列出消息的转换中错误的最低严重性。
I
所有消息。
W
(缺省值) 除参考消息外的所有其他内容。
E
除警告和参考消息外的所有内容。
S
仅严重和不可恢复的错误消息。
GDS
(仅限 C , C++ 和汇编语言)
GDS 指定转换程序将处理 CICS GDS (通用数据流) 命令。 有关这些命令的编程信息,请参阅 CICS API 命令
图形
(仅限 PL/I)
GRAPHIC 指定源程序可能包含双字节字符。 GRAPHIC 选项使转换程序将十六进制代码 X'0E'X'0F' 分别视为移出 (SO) 和移入 (SI) 代码,无论它们出现在程序中的任何位置。
这还会阻止转换程序生成包含十六进制格式的移出和移入值的参数列表。 无论这些值通常出现在何处,转换程序都以二进制格式表示它们,因此在编译器接收的数据流中没有意外的 DBCS 定界符。
如果您正在使用的编译器支持 DBCS ,那么需要防止意外的移出和移入代码,即使您未使用双字节字符也是如此。 通过为转换程序指定 GRAPHIC 选项来防止意外的移出和移入代码,以便它不会创建这些代码,或者通过在编译步骤上指定 NOGRAPHIC 来防止意外的移出和移入代码,以便编译器不会将它们解释为 DBCS 定界符。
有关如何使用 DBCS 在 PL/I 中编程的更详细信息,请参阅相关语言参考手册。
莱金
(仅限汇编语言)
LEASM 指示转换程序为符合语言环境的汇编程序 MAIN 程序生成代码。
如果指定了 LEASM 选项,那么 DFHEISTG , DFHEIENT , DFHEIRET 和 DFHEIEND 宏将以不同方式展开,以创建符合语言环境的汇编程序 MAIN 程序,而不是用于 CICS 环境中的汇编程序子例程的宏扩展形式。 LEASM 选项允许已使用 NOPROLOGNOEPILOG 并编码其自己的 DFHEIENT 和其他宏的客户程序在不更改其程序源的情况下利用 Language Environment 支持。 例如,需要多个代码库寄存器的所有程序都在此类别中,因为转换程序不支持多个代码库寄存器。

有关使用 LEASM 选项翻译的汇编程序的示例,请参阅 使用 LEASM 的示例汇编程序

LENGTH
(仅限 COBOL ,汇编语言和 PL/I)
LENGTH 指示转换程序在应用程序中的 CICS 命令中省略了 LENGTH 选项时生成缺省长度。 替代方法为 NOLENGTH
LINECOUNT (n)
缩写 :LC
LINECOUNT 指定要包含在转换程序列表的每个页面中的行数,包括标题和空白行。 n 的值必须是 1 到 255 之间的整数; 如果 n 小于 5 ,那么每个页面上仅包含标题和一行列表。 缺省值为 60。
Linkage
(仅限 COBOL) 缩写 :LIN
链接 请求转换程序根据现有规则修改顶级程序中的链接部分和 PROCEDURE DIVISION 语句。
这意味着转换程序在 PROCEDURE DIVISION 中插入 USING DFHEIBLK DFHCOMMAREA 语句 (如果不存在) ,并确保链路部分 (必要时创建一个) 包含 DFHEIBLK 和 DFHCOMMAREA 的定义。
链接 是缺省值; 备用值为 无页
MAIN
(仅限 C)
MAIN 指定程序包含主过程,因此转换程序将包含 CICS API 的结构和声明。 这是缺省值。
MARGIN (m , n [, c])
(仅限 C , C++ 和 PL/I) 缩写 :MAR
MARGIN 指定包含语言或 CICS 语句的输入的每一行或记录的列。 转换程序不会处理超出这些限制的数据,但它会将其包含在源列表中。
MARGIN 选项还可以指定美国国家标准打印机控制字符的位置,以格式化在指定 SOURCE 选项时生成的列表; 否则,将列示输入记录而不插入任何空白行。 边距参数如下:
m
左页边距的列号。
n
右页边距的列号。 它必须大于 m。
注: 当用作 C 或 C++ 编译器选项时,允许对 MARGIN 选项上的第二个自变量使用星号 (*)。 但是,对于转换程序,必须指定 1 到 100 (包括 100) 之间的数字值。 当输入数据集具有固定长度记录时,右页边距允许的最大值为 80。 当输入数据集具有可变长度记录时,允许的最大值为 100。
c
美国国家标准打印机控制字符的列号。 它必须在为 m 和 n 指定的值之外。 c 的零值表示没有打印机控制字符。 如果 c 非零,那么只能在源中显示以下打印机控制字符:
(空白)
打印前跳过一行。
0
打印前跳过两行。
-
打印前跳过三行。
+
打印前不跳过。
1
新建页面。
对于 C 和 C++ ,对于固定长度记录,缺省值为 MARGIN (1,72, 0) ,对于可变长度记录,缺省值与记录长度 (1,record length,0) 相同。 PL/I 的缺省值为 MARGIN (2,72, $TAG1) (对于固定长度记录) 和 MARGIN (10,100, 0) (对于可变长度记录)。
NATLANG (EN 或 KA)
NATLANG 指定要用于转换程序消息输出的语言:
CS
简体中文。
结束节点
(缺省值) 英语。
KA
坎吉
(请注意不要将此选项与 NATLANG API 选项混淆。)
NOCBLCARD
(仅限 COBOL)
NOCBLCARD 指定转换程序不生成 CBL 语句。 CICS 需要的编译器选项由 DFHYITVL 过程指定。 确保指定 RENT , NODYNAM 和 LIB。
诺 CPSM
NOCPSM 指定转换程序不处理 EXEC CPSM 命令。 NOCPSM 是缺省值,备用值为 CPSM
节点 BUG
(仅限 COBOL , C , C++ 和 PL/I)
NODEBUG 指示转换程序不生成将行号传递到 CICS 以供执行诊断设施 (EDF) 使用的代码。
NOEDF

NOEDF 指定不将执行诊断工具应用于程序。 指定 NOEDF 没有性能优势,但该选项可用来防止调试良好的子程序中的命令出现在 EDF 屏幕上。

NOEPILOG
(仅限汇编语言)
NOEPILOG 指示转换程序不要在要转换的程序的末尾插入宏 DFHEIRET。 DFHEIRET 将控制权从发出程序返回给调用它的程序。 如果要使用 EXEC CICS RETURN 命令的任何选项,请使用 EXEC CICS RETURN 并指定 NOEPILOGNOEPILOG 阻止转换程序插入宏 DFHEIRET。 替代方法为 EPILOG ,这是缺省值。
NOFEPI
NOFEPI 不允许访问 CICS 前端编程接口 (FEPI) 的 FEPI API 命令。 NOFEPI 是缺省值; 备用值为 FEPI
NOLENGTH
(仅限 COBOL ,汇编语言和 PL/I)
如果在应用程序中的 CICS 命令中省略了 LENGTH 选项,那么 NOLENGTH 指示转换程序不生成缺省长度。 缺省值为 LENGTH
无页
(仅限 COBOL)
NOLINKAGE 请求转换程序不修改 LINKSECTION 和 PROCEDURE DIVISION 语句以提供缺少的 DFHEIBLK 和 DFHCOMMAREA 语句,或者在 LINKSECTION 中插入 EIB 结构的定义。
NOLINKAGE 选项表示您可以提供 COBOL 副本来定义 COMMAREA 并使用 EXEC CICS ADDRESS 命令。
链接 是缺省值。
NOMAIN
(仅限 C)
NOMAIN 指定程序不包含主过程,因此转换程序将不包含 CICS API 的结构。 DFHEIPTR 指针声明为外部。 这允许将多个 C 程序链接在一起进行编辑。
无编号
(仅限 COBOL)
NONUM 指示转换程序不要在其诊断消息和交叉引用列表中使用显示在程序的每行的一到六列中的行号作为行号,而是生成自己的行号。 NONUM 是缺省值,备用值为 NUM
NOOPSEQUENCE
(仅限 C , C++ 和 PL/I) 缩写 :NOS
NOOPSEQUENCE 指定序列字段在转换程序输出记录中的位置。 对于 C 和 C++ ,缺省值为 OPSEQUENCE (73,80) (对于固定长度记录) 和 NOOPSEQUENCE (对于可变长度记录)。 对于 PL/I ,对于这两种类型的记录,缺省值为 OPSEQUENCE (73,80)。
选项
缩写: NOP
NOOPTIONS 指示转换程序不要在其输出列表中包含此转换期间使用的选项的列表。
无程序日志
(仅限汇编语言)
NOPROLOG 指示转换程序不要将宏 DFHEISTG , DFHEIEND 和 DFHEIENT 插入到正在组装的程序中。 这些宏定义本地程序存储器,并在程序项处执行。
NOSEQ
(仅限 COBOL)
NOSEQ 指示转换程序不要检查第 1-6 列中的源语句的序列字段。 替代方法 SEQ 是缺省值。 如果指定了 SEQ 并且语句没有顺序,那么将标记该语句。
NOSEQUENCE
(仅限 C , C++ 和 PL/I) 缩写 :NSEQ
NOSEQUENCE 指定转换程序输入中的语句未按顺序编号,并且转换程序必须指定自己的行号。
固定长度记录的缺省值为 SEQUENCE (73,80)。 对于 C 和 C++ 中的变长记录,缺省值为 NOSEQUENCE ,对于 PL/I 中的变长记录,缺省值为 SEQUENCE (1, 8)。
无源
NOSOURCE 指示转换程序不在转换程序列表中包含已转换源程序的列表。
NOSPIE
NOSPIE 可防止转换程序捕获不可恢复错误; 而是生成转储。 仅当 IBM® 支持中心请求时,才使用 NOSPIE
新布雷夫
(仅限 COBOL , C , C++ 和 PL/I)
新布雷夫 指示转换程序不要在转换程序列表中包含带有行号的命令的交叉引用。 ( 新布雷夫 以前称为 NOXREF; 为了兼容,仍接受 NOXREF。) NOVBREF 是缺省值,替代值为 VBREF
NUM
(仅限 COBOL)
NUM 指示转换程序使用显示在程序的每行 1 到 6 列中的行号作为其诊断消息和交叉引用列表中的行号。 替代方法是 NONUM ,这是缺省值。
OPMARGIN (m , n [, c])
(仅限 C , C++ 和 PL/I) 缩写 :OM
OPMARGIN 指定转换程序输出边界,即以下编译器的输入边界。 通常,这些页边距与转换程序的输入页边距相同。 有关输入边界的定义以及 mnc 的含义,请参阅 MARGIN 。 对于 C 和 C++ ,缺省值为 OPMARGIN (1,72, $TAG1) ,对于 PL/I ,缺省值为 OPMARGIN (2,72, 0)。
OPMARGIN 选项允许的最大 n 值为 80。 转换程序的输出始终为固定长度的记录格式。
如果使用 OPMARGIN 选项将转换程序的输出设置为特定格式,那么可能需要更改正在使用的编译器的输入边界。 如果允许 OPMARGIN 值为缺省值,那么不需要更改所使用的编译器的输入边界。
OPSEQUENCE (m , n)
(仅限 C , C++ 和 PL/I) 缩写 :OS
OPSEQUENCE 指定序列字段在转换程序输出记录中的位置。 有关 mn 的含义,请参阅 SEQUENCE 。 对于 C 和 C++ ,缺省值为 OPSEQUENCE (73,80) (用于固定长度记录) 和 NOOPSEQUENCE (用于可变长度记录)。 对于 PL/I ,对于这两种类型的记录,缺省值为 OPSEQUENCE (73,80)。
选项
缩写 :OP
OPTIONS 指示转换程序在其输出列表中包含此转换期间使用的选项的列表。
PROLOG
(仅限汇编语言)
PROLOG 指示转换程序将宏 DFHEISTG , DFHEIEND 和 DFHEIENT 插入到正在组装的程序中。 这些宏定义本地程序存储器,并在程序项处执行。
Quote
(仅限 COBOL) 缩写 :Q
QUOTE 指示文字由双引号 (") 描述。 必须为转换程序步骤和以下编译器步骤指定相同的值。 虽然 COBOL 允许 COBOL 源代码中的定界符在同一程序中为单引号,引号或两者的混合,但如果使用 CICS 独立转换程序,那么 COBOL 程序中的所有开始和结束定界符都必须与指定的 CICS 选项匹配。 跨多行继续的字面值还必须以指定的定界符开头和结尾。

请注意, CICS提供的 COBOL 副本具有单引号。 如果要在应用程序中使用任何 CICS提供的副本来接口到 CICS 组件,请确保使用 APOST 选项 (而不是 QUOTE 选项) ,并相应地对程序中的定界符进行编码。

SEQ
(仅限 COBOL)
SEQ 指示转换程序在第 1-6 列中检查源语句的序列字段。 SEQ 是缺省值; 替代值为 NOSEQ 。 如果语句没有顺序,那么将标记该语句。
SEQUENCE (m , n)
(仅限 C , C++ 和 PL/I) 缩写: SEQ
SEQUENCE 指定转换程序输入中的语句是序列编号的,并且每个行或记录中的列都包含序列字段。 转换程序将此数字用作错误消息和交叉引用列表中的行号。 不尝试将输入行或记录按顺序排序。 如果未指定序列字段,那么转换程序将分配其自己的行号。 SEQUENCE 参数为:
m
最左边的序号列。
n
最右边的序号列。
序号字段不得超过 8 个字符,并且不得与源程序重叠 (如 MARGIN 选项中所指定)。
固定长度记录的缺省值为 SEQUENCE (73,80)。 对于 C 和 C++ 中的可变长度记录,缺省值为 NOSEQUENCE ,对于 PL/I 中的可变长度记录,缺省值为 SEQUENCE (1, 8)。
SOURCE
缩写: S
SOURCE 指示转换程序在转换程序列表中包含转换源程序的列表。 SOURCE 是缺省值; 备用值为 NOSOURCE
SP
必须为包含特殊 (SP) CICS 命令的应用程序指定 SP ,否则在转换时将拒绝这些命令。 这些命令为 COLLECT , COLLECT , CREATE , DISABLE , DISCARD , ENABLE , EXTRACT , INQUIRE , PERFORM , RESYNC 和 SET。 这些命令由系统程序员使用。 有关这些命令的编程信息,请参阅 系统命令
SPACE (1 , 2 或 3)
(仅限 COBOL)
SPACE 指示要在输出列表中使用的间隔类型: SPACE(1) 指定单间隔, SPACE(2) 双间隔和 SPACE(3) 三间隔。 SPACE(3) 是缺省值。
SPIE
SPIE 指定转换程序将捕获不可恢复的错误。 SPIE 是缺省值; 备用值为 NOSPIE
SYSEIB
SYSEIB 指示程序将使用系统 EIB 而不是应用程序 EIB。 SYSEIB 选项允许程序在不更新应用程序 EIB 的情况下执行 CICS 命令,从而使该执行方面对应用程序透明。 仅在特殊情况下使用此选项,因为它会对使用此选项的程序施加限制。 使用 SYSEIB 选项转换的程序必须:
  • 在 AMODE (31) 中执行,因为假定系统 EIB 位于 TASKDATALOC (ANY) 存储器中。
  • 使用 ADDRESS EIB 命令获取系统 EIB 的地址 (如果使用 SYSEIB 选项转换程序,那么此命令会自动返回系统 EIB 的地址)。
  • 使用 SYSEIB 选项意味着在程序发出的所有 CICS 命令上使用 NOHANDLE 选项。 命令可以根据需要使用 RESP 选项。
VBREF
(仅限 COBOL , C , C++ 和 PL/I)
VBREF 指定转换程序是否在转换程序列表中包含带有行号的命令的交叉引用。 VBREF 曾经被称为 XREF ,但仍被接受。)