操作码

下表显示了每个操作码的自由格式语法。
  • 扩展器
    (A)
    始终执行转储,即使指定了 DEBUG (*NO) 也是如此
    (A)
    按升序排序
    (C)
    仅处理发送到 ON-EXCP 的当前过程的异常
    (D)
    在绑定调用上传递操作描述符
    (D)
    日期字段
    (D)
    按降序排序
    (英)
    错误处理
    (H)
    半调整 (对数字结果进行舍入)
    (M)
    缺省精度规则
    (N)
    不锁定记录
    (N)
    成功 DEALLOC 后将指针设置为 *NULL
    (N)
    请勿将数据强制转换为非易失性存储器
    (P)
    用空格或零填充结果
    (R)
    "结果小数位" 精度规则
    (T)
    时间字段
    (Z)
    时间戳记字段
表 1. 自由格式语法中的操作码
代码 自由格式语法
ACQ 1 ACQ {(E)} device-name workstn-file
BEGSR BEGSR 子例程-名称
CALLP {CALLP{(EMR)}} 名称({parm1{:parm2...}})
{(ENHMR)} search-arg file-or-record-name { data-structure}
清除 CLEAR {*NOKEY} {*ALL} 名称
关闭 CLOSE{(E)} 文件名
COMMIT COMMIT{(E)} {边界}
数据-GEN DATA-GEN{(EH)} 源文档解析器
数据-INTO DATA-INTO{(EH)} 目标或处理程序文档解析器
DEALLOC 1 DEALLOC {(EN)} 指针名称
删除 DELETE {(EHMR)} {search-arg} file-or-record-name
DOU DOU{(MR)} 指示符-表达式
DOW DOW{(MR)} 指示符-表达式
DSPLY DSPLY{(E)} {消息 {消息队列 {响应}}}
转储 1 DUMP{(A)} {标识}
ELSE ELSE
ElseIf ELSEIF{(MR)} 指示符-表达式
ENDDO ENDDO
终点 结束
ENDIF ENDIF
ENDMON ENDMON
结束语 用户线路
结束语 ENDSR {返回点}
Eval {EVAL{(HMR)}} 结果 = 表达式
EVALR EVALR {(MR)} result = expression
EVAL-CORR EVAL-CORR {(EH)} target-ds = source-ds
EXCEPT 除{除名 }
EXFMT EXFMT {(E)}格式名称 {data-structure}
EXSR EXSR 子例程-名称
FEOD FEOD{(EN)} 文件名
对于 对于{(MR)} 索引 {= 启动} {BY 增量} {TO | DOWNTO 限制}
每个 FOR-EACH{(H)} IN 数组 | %LIST | %SUBARR
FORCE FORCE 文件名
IF IF{(MR)} 指示符-表达式
输入 1 IN {(E)} {*LOCK} data-area-name
热核实验堆 伊特
保留 LEAVE
LEAVESR LEAVESR
MONITOR MONITOR
下一步1 NEXT{(E)} 程序设备 文件名
接通错误 ON-ERROR {exception-id1 {:exception-id2 ...}}
退出时 ON-EXIT {状态}
打开 OPEN{(E)} 文件名
其他 OTHER
输出1 输出{(E)} {*LOCK} data-area-name
职位 1 POST {(E)} { 程序 -设备} 文件名
读{(EN)} file-or-record-name {data-structure}
阅读 READC {(E)} 记录名 { 数据结构}
自述文件 READE{(ENHMR)} search-arg| *KEY file-or-record-name { data-structure}
阅读 READP{(EN)} 名称 {data-structure}
READPE READPE{(ENHMR)} 搜索-arg| *KEY file-or-record-name {数据结构}
REL 1 REL{(E)} 程序设备 文件名
重置 1 RESET{(E)} {*NOKEY} {*ALL} 名称
返回 RETURN{(HMR)} 表达式
ROLBK ROLBK {(E)}
选择 选择
SETGT SETGT {(EHMR)} search-arg file-or-record-name
设置 SETLL {(EHMR)} search-arg file-or-record-name
索塔 SORTA{(AD)} array-namekeyed-ds-array
测试 1 TEST {(EDTZ)} {dtz-format} 字段名称
解锁 1 UNLOCK{(E)} 名称
更新 UPDATE{(E)} file-or-record-name {数据结构| %FIELDS(名称{: 名称...})}
When WHEN{(MR)} 指示符-表达式
WRITE WRITE {(E)} file-or-record-name {data-structure}
XML-INTO XML-INTO {(EH)}target-or-handler xml-document
XML-SAX XML-SAX{(E)} 处理程序 xml-document
注:
  1. 此操作码不允许使用复杂限定名。

下表是传统语法中每个操作码的规范摘要。

  • 空列指示字段必须为空。
  • 所有带下划线的字段都是必填字段。
  • 一个突出的空格表示在该位置没有结果指示符。
  • 符号
    +
    -
    负误差
  • 扩展器
    (A)
    始终执行转储,即使指定了 DEBUG (*NO) 也是如此
    (A)
    按升序排序
    (D)
    在绑定调用上传递操作描述符
    (D)
    日期字段
    (D)
    按降序排序
    (英)
    错误处理
    (H)
    半调整 (对数字结果进行舍入)
    (M)
    缺省精度规则
    (N)
    不锁定记录
    (N)
    成功 DEALLOC 后将指针设置为 *NULL
    (P)
    用空格或零填充结果
    (R)
    "结果小数位" 精度规则
    (T)
    时间字段
    (Z)
    时间戳记字段
  • 生成的指示符符号
    BL
    空白
    BN
    空白,然后是数字
    BOF
    文件开头
    EOF
    文件的结尾
    EQ
    等于
    ER
    错误
    FD
    找到
    HI
    大于
    IN
    指示符
    LO
    小于
    LR
    最后一个记录
    NR
    找不到任何记录
    NU
    数字
    /
    关闭
    打开
    On
    Z
    ZB
    零或空白
表 2。 传统语法中的操作码
代码 因子1 因子2 结果字段 结果指示符
71-72 73-74 75-76
ACQ ( E7 ) 设备名 工作文件     ER  
添加 (H) 附加 添加 总计 + - Z
ADDDUR (E) 日期/时间 持续时间: 持续时间代码 日期/时间   ER  
ALLOC (E)   长度 指针   ER  
ANDxx 比较 比较        
BEGSR 子例程-名称          
比托夫   位数字 character field(字符字段)      
比通   位数字 character field(字符字段)      
CABxx 比较 比较 标签 HI LO EQ
呼叫 (E)   程序名 Plist 名称   ER LR
CALLB (D E)   过程名称过程指针 Plist 名称   ER LR
呼叫点(E M/R)   名称 {(parm1 {:parm2 …}) }
CASxx 可比性 可比性 子例程名称 HI LO EQ
禁止酷刑委员会 (P) 源字符串 1 源字符串 2: 空格数 目标 string      
主席 (E N) 搜索参数 name (文件或记录格式) 数据结构 NR2 ER  
检查 (E) 比较器字符串 基本字符串: 启动 最左位置   ER FD2
检查 (E) 比较器字符串 基本字符串: 启动 最右侧位置   ER FD2
清除 *诺基 *全部 name (变量或记录格式)      
关闭 (E)   file-name*ALL     ER  
提交 (E) 边界       ER  
压缩机1 比较 比较   HI LO EQ
DEALLOC (E/N)     指针名称   ER  
定义 *喜欢 引用的字段 定义的字段      
定义 *DTAARA 外部数据区 内部字段      
删除 (E) 搜索-arg name (文件或记录格式)   NR2 ER  
分部(H) 红利 divisor QUOTIENT + - Z
DO 起始值 限制值 指数值      
杜(男/女)   指示符-表达式
DOUxx 比较 比较        
道琼斯指数(M/R)   指示符-表达式
DOWxx 比较 比较        
DSPLY (E) 4 消息 消息队列 响应   ER  
倾倒 (A) 标识          
ELSE            
ELSEIF (M/R)   指示符-表达式
END   增量值        
结束语            
ENDDO   增量值        
终点            
ENDIF            
ENDMON            
结束语            
结束语 标签 返回点        
评估(H M/R)   结果 = 表达式
EVALR(M/R)   结果 = 表达式
EVAL-CORR   EVAL-CORR 目标-ds = 源-ds
EXCEPT   除外名称        
EXFMT (E)   记录格式-名称 数据结构   ER  
EXSR   子例程-名称        
切除 (E)   日期/时间: 持续时间代码 目标字段   ER  
FEOD (EN)   文件名     ER  
对于   Index-name = start-value BY increment TO | DOWNTO 限制
FORCE   文件名        
GOTO   标签        
中频(M/R)   指示符-表达式
IFxx 比较 比较        
输入 (E) * 锁定 数据区域名称     ER  
热核实验堆            
KFLD     键字段      
klist KLIST 名称          
保留            
LEAVESR            
LOOKUP1 (数组) search argument(搜索自变量) 数组名   HI LO EQ6
LOOKUP1 (表) search argument(搜索自变量) 表名 表名 HI LO EQ6
MHHZO   源字段 目标字段      
MHLZO   源字段 目标字段      
MLHZO   源字段 目标字段      
MLLZO   源字段 目标字段      
MONITOR            
移动 (P) 数据属性 源字段 目标字段 + - ZB
MOVEA (P)   目标 + - ZB
移动 (P) 数据属性 源字段 目标字段 + - ZB
MULT (H) 乘法 增效器 产品 + - Z
MVR     余数 + - Z
下一步 (E) 程序-设备 文件名     ER  
出现 (E) 出现值 数据结构 出现值   ER  
接通错误   状态码
退出时   状态
开放 (E)   文件名     ER  
ORxx 比较 比较        
其他            
输出 (E) * 锁定 数据区域名称     ER  
参数 (parm) 目标字段 源字段 参数      
PList PLIST 名称          
职位(英) 3 程序设备 文件名 INFDS 名称   ER  
读 (E N)   name (文件或记录格式)
数据-
结构
  ER EOF5
读卡器 (E)   记录名
数据-
结构
  ER EOF5
自述文件 (E N) 搜索-arg name (文件或记录格式)
数据-
结构
  ER EOF5
读数(英 N)   name (文件或记录格式)
数据-
结构
  ER BOF5
READPE(英文名) 搜索-arg name (文件或记录格式)
数据-
结构
  ER BOF5
重新分配 (E)   长度 指针   ER  
REL (E) 程序-设备 文件名     ER  
重置 (E) *诺基 *全部 name (变量或记录格式)   ER  
返回(H M/R)   表达式
ROLBK (英文)         ER  
扫描 (E) 比较器字符串: 长度 基本字符串:start 最左侧位置   ER FD2
选择            
SETGT (E) 搜索参数 name (文件或记录格式)   NR2 ER  
设置 (E) 搜索参数 name (文件或记录格式)   NR2 ER EQ6
关闭1       / / /
设置1       打开 打开 打开
SHTDN       打开    
SORTA(A/D)   array-name 或 keyed-ds-array        
SQRT(H)        
SUB (H) 米努端德 子端 (Subtrahend) 差别 + - Z
SUBDUR (E) (持续时间) 日期/时间/时间戳记 日期/时间/时间戳记 持续时间: 持续时间代码   ER  
SUBDUR (E) (新日期) 日期/时间/时间戳记 持续时间: 持续时间代码 日期/时间/时间戳记   ER  
SUBST (E P) 要抽取的长度 基本字符串:start 目标 string   ER  
标记 标签          
测试 (E) 8     日期/时间时间戳记字段   ER  
测试 (D E) 8 数据格式   字符数字字段   ER  
测试(E T) 8 时间格式   字符数字字段   ER  
测试 (E Z) 8 时间戳记格式   字符数字字段   ER  
测试1   位数字 character field(字符字段) / 打开 EQ
测试1     character field(字符字段) NU BN BL
测试1     character field(字符字段) 人工智能 JR XX
时间     目标字段      
解锁 (E)   name (文件或数据区)     ER  
更新 (E)   name (文件或记录格式)
数据-
结构
  ER  
何时(男/女)   指示符-表达式
WHENxx 比较 比较        
写入 (E)   name (文件或记录格式)
数据-
结构
  ER EOF5
XFOOT (H)   数组名 总计 + - Z
XLATE (EP) 发件人: 收件人 字符串:start 目标 string   ER  
XML-INTO   XML-INTO target-or-handler xml-document
XML-SAX   XML-SAX{(E)} 处理程序 xml-document
Z-ADD (H)   添加 总计 + - Z
Z-SUB (高)   子端 (Subtrahend) 差别 + - Z
注:
  1. 至少需要一个结果指示符。
  2. %FOUND 内置函数可用作指定 NR 或 FD 结果指示符的替代方法。
  3. 必须指定因子 2 或结果字段。 您可以同时指定这两者。
  4. 必须指定因子 1 或结果字段。 您可以同时指定这两者。
  5. %EOF 内置函数可用作指定 EOF 或 BOF 结果指示符的替代方法。
  6. %EQUAL 内置函数可用于测试 SETLL 和 LOOKUP 操作。
  7. 对于带有扩展器 "E" 的所有操作码,可以指定扩展器 "E" 或 ER 错误指示符,但不能同时指定两者。
  8. 必须为 TEST 操作指定扩展器 "E" 或错误指示符。