我正在尝试创建一个非常简单的COBOL程序。我已经设置了我的目录,配置等,但是当我去编译它时我得到了这个错误:
sampleCOBOL.cbl: In paragraph 'Main-Paragraph' :
sampleCOBOL.cbl:9: Error: syntax error, unexpected "end of file"
(“sampleCOBOL.cbl”是我的文件名)
这是我的文件包含的内容:
Identification Division.
Program-ID. sampleCOBOL.
Data Division.
Procedure Division.
Main-Paragraph.
Display "Hello World!"
Stop Run.
我知道错误发生在第9行(“停止运行”。)上。但是,为什么?
答案 0 :(得分:2)
SourgeForge支持GNU COBOL(以前称为OpenCOBOL)。
从那里,可以回答相同的错误消息:https://sourceforge.net/p/open-cobol/discussion/109660/thread/cdfe04a5/#0996
您可以让COBOL程序服从传统的固定列开始/结束,我们可以将此>>SOURCE FORMAT IS FREE
放在程序的第一行第12列。然后,您可以在不参考列号的情况下进行编码。
如果使用列号,第1-6列不用于代码,第7列用于注释,调试或新页面标记,或者很少继续使用不适合上一行的文字。
然后代码从第8-11列(又名“区域a”)或第12-71列(“区域b”)开始。
除了结束PROCEDURE DIVISION标题,段落/ SECTION名称之前和程序结束之前,您不需要在PROCEDURE DIVISION中设置一个句号。在遥远的过去,你曾经需要很多全停/期间,但多年不需要(虽然许多人仍然编码)。
如果您向下滚动链接讨论,请查看您对其他答案的评论和NealB对您的问题的评论:
我使用Notepad ++进行了很多自己的编码。您可以设置EOL 使用UNIX而不是Windows或UTF编码。这也将解决 EOF问题。此外,您需要确保在何时设置“使用空间” Tab键。从Windows编辑器中使用选项卡时,cobc会出现问题。
将它们放在一起,您使用的是Windows,标签页以及不喜欢源标签的OpenCOBOL版本。你有两件事要做才能让它正常工作,你可能希望在方便的时候获得最新版本的GNU COBOL。
我建议你去http://sourceforge.net/p/open-cobol/discussion/2526793/。如果您没有SourceForge帐户,请加入,或者如果您有帐户,请加入,并在Help getting started
中发帖。那里有人使用Windows(我没有)应该能够提供帮助。登录/加入的原因是,否则您将等待数小时首先“审核”您的问题,并且您将显示为“匿名”。
答案 1 :(得分:2)
弄清楚出了什么问题。我在“识别部门”和“程序ID”之间有一条额外的界限。
我不知道我是怎么错过的。
男孩,我觉得自己很蠢。
答案 2 :(得分:0)
IDENTIFICATION的I
必须位于第8列(之前7个空格)。
---- sampleCOBOL.cob -------------------------
* Sample COBOL program
IDENTIFICATION DIVISION.
PROGRAM-ID. sampleCOBOL.
PROCEDURE DIVISION.
DISPLAY "Hello World!".
STOP RUN.
----------------------------------------
答案 3 :(得分:0)
我刚刚开始学习COBOL时遇到了同样的问题。关键是每一行应以CRLF结束。您可以参考here了解如何实现这一目标。