Ошибка: синтаксическая ошибка, неожиданный идентификатор, ожидание конца файла

Это пример программы, которую я делаю для своего класса COBOL, и у меня было несколько вопросов о коде ошибки, который я получаю, когда пытаюсь скомпилировать через командную строку. Пожалуйста, смотрите ниже. Под COBOL будет код моего терминала. Как я могу исправить «неожиданный идентификатор»?

       IDENTIFICATION DIVISION.
   PROGRAM-ID.      SAMPLE135.
   AUTHOR.          ME.

   ENVIRONMENT DIVISION.


   DATA DIVISION.
   77 FIELD-A PIC 9(2).
   77 FIELD-B PIC 9(2).
   77 FIELD-C PIC 9(3) VALUE ZERO.
   77 FIELD-D PIC 9(3) VALUE ZERO.

   WORKING-STORAGE SECTION.

   PROCEDURE DIVISION.
   FIRST-PARAGRAPH.
       MOVE ZEROS TO FIELD-A FIELD-B.
       PERFORM SECOND-PARAGRAPH.
       PERFORM THIRD-PARAGRAPH.
       PERFORM SECOND-PARAGRAPH.
       PERFORM WRITE-DATA.
       STOP RUN.      

   SECOND-PARAGRAPH.
       ADD 10 TO FIELD-A.
       ADD 20 TO FIELD-B.

   THIRD-PARAGRAPH.
       MULTIPLY FIELD-A BY FIELD-B GIVING FIELD-C.
       DIVIDE FIELD-A INTO FIELD-B GIVING FIELD-D.

   WRITE-DATA.
       DISPLAY FIELD-A.
       DISPLAY FIELD-B.
       DISPLAY FIELD-C.
       DISPLAY FIELD-D.

   END PROGRAM.



Sample2.cbl:9: Error: syntax error, unexpected "Identifier", expecting "end of file"

person Community    schedule 16.09.2016    source источник


Ответы (2)


У вас есть элементы данных «77» не в том месте, а также отступ. Также убедитесь, что имена полей начинаются с области B (если не используется свободный формат). пытаться

DATA DIVISION.

WORKING-STORAGE SECTION.
   77  FIELD-A          PIC 9(2).
   77  FIELD-B          PIC 9(2).
   77  FIELD-C          PIC 9(3) VALUE ZERO.
   77  FIELD-D          PIC 9(3) VALUE ZERO.

В коде Cobol обычно считается лучше использовать только '.' когда они абсолютно необходимы (перед процедурами), т.е.

SECOND-PARAGRAPH.
    ADD 10              TO FIELD-A
    ADD 20              TO FIELD-B

    .
THIRD-PARAGRAPH.

Наконец, это также стандартная практика с отступом операторов TO и PIC, как у меня.

person Bruce Martin    schedule 16.09.2016

Заголовок WORKING-STORAGE SECTION должен располагаться перед определениями 77-го уровня.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 FIELD-A PIC 9(2).
       77 FIELD-B PIC 9(2).
       77 FIELD-C PIC 9(3) VALUE ZERO.
       77 FIELD-D PIC 9(3) VALUE ZERO.

Вам также не хватает названия программы в маркере конца.

       END PROGRAM SAMPLE135.
person Edward H    schedule 16.09.2016
comment
Либо это, либо END PROGRAM. является лишним, в зависимости от того, обучают ли его словесному выражению, чтобы поддержать идею многословия :-) - person Bill Woodger; 16.09.2016