#cobol #gnucobol
Вопрос:
Я смотрю учебники по COBOL, они используют инструкцию «стереть» для очистки экрана, и это не работает для меня. Компилятор указывает на «синтаксическую ошибку, неожиданное СТИРАНИЕ».
Код таков:
DISPLAY "1.- CALC, 2.- CLOSE" ERASE.
Это моя ошибка?
Я использую opencobol на ubuntu Извините за мой английский, это не мой родной язык
Комментарии:
1. Предложение здесь таково
DISPLAY
.ERASE
здесь не предложение, а в лучшем случае предложение, причем нестандартное. Если ваша реализация Cobol не поддерживает ее, это то, что вы получите.2. Есть ли ответ на ваш вопрос? Если да, пожалуйста, отметьте как ответ, если нет, прокомментируйте.
Ответ №1:
Как отметил @user207421 ERASE
, это не утверждение, это предложение для DISPLAY
утверждения, и оно даже стандартизировано, но (по стандарту) ему нужна спецификация того, что вы хотите стереть:
ERASE [END] [OF] LINE
[END] [OF] SCREEN
EOL
EOS
Синтаксис, который вы показали, на самом деле является очень нестандартным, устаревшим оператором Microsoft-COBOL DISPLAY
ERASE phrase
.
Если вы все еще используете open-cobol, то пакет сильно устарел, в Ubuntu должен быть доступен новый пакет gnucobol (в противном случае вы могли бы создать его из исходного кода). Используя GnuCOBOL 2.2, вы получаете более приятное сообщение об ошибке:
ошибка: синтаксическая ошибка, неожиданная ., ожидание СТРОКИ или ЭКРАНА
И тогда вы можете решить, хотите ли вы старый вариант ms-cobol (который поддерживается в GnuCOBOL, но только с pos-спецификатором) или стандартный вариант ( ERASE EOS
будет совместимой версией и поддерживается многими компиляторами).