如何在Enterprise COBOL V6.2中拼接多个COBOL常量?
IBM Enterprise COBOL V6.2 VALUE子句多常量拼接语法确认
我曾开发一款临时源码转换工具,用于修正包含二进制字符数据的字符串字面量的EBCDIC→ASCII转换问题——我们使用Linux环境的编译器,但目标运行环境是原EBCDIC字符集系统。
我需要处理这类转换出错的ASCII源码行:
10 FILLER PIC X(03) VALUE '^A^@<97>'.
转换后需要得到的正确代码是:
10 FILLER PIC X(03) VALUE X'010008'.
如果工具要具备通用性,还需要处理混合可打印字符与不可打印字符的场景,比如:
10 FILLER PIC X(010) VALUE 'Hi^A^@<97>There'.
为此,我想确认IBM Enterprise COBOL V6.2是否支持在单个VALUE子句中直接拼接字符串常量和十六进制常量,示例写法如下:
IDENTIFICATION DIVISION. PROGRAM-ID. FOO. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 my-var PIC X(10) VALUE 'Hi' X'01' X'00' X'08' 'There'. PROCEDURE DIVISION. DISPLAY my-var GOBACK .
补充说明:完成工具初始版本后,我统计了项目中的7000份源码,其中约150个包含二进制字符字面量的文件里,除1个案例需手动处理外,其余均为纯不可打印字符,因此本次项目实际不需要用到通用拼接逻辑,但仍希望确认该语法是否符合V6.2的编译器规范,以便后续迁回原系统时使用。
内容的提问来源于stack exchange,提问作者Peeter Joot
相关产品推荐
相关产品推荐

