我在cobol中有语法问题。我在Ubuntu 4.2.0-16-generic上使用open-cobol软件包,但出现错误:
~/cobol$ cobc -free -x -o cal cal.cbl
cal.cbl:6: Error: syntax error, unexpected $undefined, expecting "end of file"
我的cal.cbl文件:
IDENTIFICATION DIVISION.
PROGRAM-ID. cal.
ENVIRONMENT DIVISION.
DATA DIVISION.
?? OPTION PIC 9 VALUE ZERO.
?? NUM1 PIC 9(5)V9(2) VALUE ZERO.
?? NUM2 PIC 9(5)V9(2) VALUE ZERO.
?? RESULT PIC 9(10)V9(2) VALUE ZERO.
PROCEDURE DIVISION.
ACCEPT OPTION.
DISPLAY "INSERT FIRST OPTION".
ACCEPT NUM1.
DISPLAY "INSERT SECOND OPTION".
ACCEPT NUM2.
STOP RUN.
我是cobolt的新手,我对列一无所知,这就是为什么我使用-free标志进行编译的原因,但是这个错误对我来说毫无意义。
为什么会发生此错误,请提供帮助:)
最佳答案
??
不是有效的COBOL字,也没有级别号(第6行中需要)。
GnuCOBOL 2.x在许多方面都更好,包括用户消息:
cal.cob: 6: Error: Invalid symbol: ? - Skipping word
cal.cob: 6: Error: PROCEDURE DIVISION header missing
cal.cob: 6: Error: syntax error, unexpected Identifier
cal.cob: 7: Error: Invalid symbol: ? - Skipping word
cal.cob: 7: Error: syntax error, unexpected Identifier
cal.cob: 8: Error: Invalid symbol: ? - Skipping word
cal.cob: 8: Error: syntax error, unexpected Identifier
cal.cob: 9: Error: Invalid symbol: ? - Skipping word
cal.cob: 9: Error: syntax error, unexpected Identifier
cal.cob: 11: Error: syntax error, unexpected PROCEDURE
cal.cob: 12: Error: 'OPTION' is not defined
cal.cob: 15: Error: 'NUM1' is not defined
cal.cob: 17: Error: 'NUM2' is not defined
将
??
更改为01
或77
,您将不再有错误。在WORKING-STORAGE SECTION
之后插入LOCAL-STORAGE SECTION
或DATA DIVISION
,您的程序可以正常编译。获取Programmer's Guide,以了解有关COBOL的更多信息。
关于linux - Cobol-语法错误,意外的$ undefined,期望“文件结尾”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38408689/