运行COBOL代码出现mismatched input '>'报错该如何解决
你遇到的报错和扩展无关,是代码本身的语法错误导致的,问题出在以下几个地方:
>>SOURCE FORMAT FREE是COBOL的自由格式声明指令,要求该行不能带行首前导空格,你当前代码里这行前面加了7个空格,编译器会把前导空格当成非法输入,解析到后面的>符号时就会触发匹配错误。- 多个语句末尾缺失必须的句号,COBOL要求每个Division、段、数据项定义、执行语句的末尾都要加句号作为结束标记,你缺失的位置包括:
- DATE-WRITTEN 行的末尾
November 24th 2021后没加句号 - SSNum下的三个子项
SSArea、SSGroup、SSSerial定义末尾都没加句号 - 过程部的
DISPLAY、ACCEPT语句末尾都没加句号
- DATE-WRITTEN 行的末尾
修正后的可正常运行代码如下:
>>SOURCE FORMAT FREE IDENTIFICATION DIVISION. PROGRAM-ID. coboltut. AUTHOR. John Doe. DATE-WRITTEN. November 24th 2021. ENVIRONMENT DIVISION. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 UserName PIC X(30) VALUE "You". 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Total PIC 99 VALUE 0. 01 SSNum. 02 SSArea PIC 999. 03 SSGroup PIC 99. 03 SSSerial PIC 9999. PROCEDURE DIVISION. DISPLAY "WHAT IS YOUR NAME " WITH NO ADVANCING. ACCEPT UserName. DISPLAY "Hello " USERNAME. STOP RUN.
COBOL对句号的位置要求非常严格,漏写、多写或者位置错误都会直接触发语法错误,后续写代码时要注意每个语句结束都补全句号。
内容的提问来源于stack exchange,提问作者Que Cyber
相关产品推荐
相关产品推荐

