Cobol - синтаксическая ошибка, неожиданный $undefined, ожидающий "конец файла"

У меня проблема с синтаксисом в коболе. Я использую пакет open-cobol в Ubuntu 4.2.0-16-generic, и у меня есть ошибка:

~/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 для компиляции, но эта ошибка не имеет для меня смысла.

Почему эта ошибка возникает, пожалуйста, помогите:)

1 ответ

Решение

?? не является допустимым словом 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 и ваша программа компилируется нормально.

Получите Руководство программиста, чтобы узнать больше о COBOL.

Другие вопросы по тегам