OberonCore
https://forum.oberoncore.ru/

Маркеры ошибок
https://forum.oberoncore.ru/viewtopic.php?f=1&t=2156
Страница 1 из 1

Автор:  id_ler [ Четверг, 03 Декабрь, 2009 15:51 ]
Заголовок сообщения:  Маркеры ошибок

Выделено: viewtopic.php?p=39016#p39016
Geniepro писал(а):
upd. Только что попытался проверить в BB 1.2 -- не компилируется...
Я не много изменил Ваш тест и обнаружил интересную, как мне кажется, особенность ВВ 1.5. Существует зависимость появления ошибки в редакторе от количества табуляций. Скопирую оба варианта, но при воспроизведении ее на другой машине результат, скорее всего, будет иной. Даже набирая комментарии потом сложно найти этот переход.
С ошибкой в строке L2: StdLog.Int(y)
Код:
MODULE GotoTest;

IMPORT StdLog;

   PROCEDURE Go*;
      VAR x, y : INTEGER;
      LABEL L1;
      LABEL L2;

         BEGIN
         x := 0;
         y := 0;
         L1:   StdLog.Int(x);
         INC(x);
         GOTO L1;
         L2:   StdLog.Int(y);
      INC(y);
      GOTO L2;

END Go;

END GotoTest.
Без ошибки
Код:
MODULE GotoTest;

IMPORT StdLog;

   PROCEDURE Go*;
      VAR x, y : INTEGER;
      LABEL L1;
      LABEL L2;

         BEGIN
         x := 0;
         y := 0;
         L1:   StdLog.Int(x);
         INC(x);
         GOTO L1;
      L2:   StdLog.Int(y);
      INC(y);
      GOTO L2;

END Go;

END GotoTest.
Еще, может быть, импорт модуля SYSTEM изменит картину в какую-нибудь сторону.

Автор:  Илья Ермаков [ Четверг, 03 Декабрь, 2009 16:01 ]
Заголовок сообщения:  Re: серверный режим через сеть

Какой ошибки в редакторе? Вы имеете в виду ошибку компиляции? Хотите сказать, что это бред иногда компилируется? :)

Автор:  id_ler [ Четверг, 03 Декабрь, 2009 16:20 ]
Заголовок сообщения:  Re: серверный режим через сеть

Илья Ермаков писал(а):
Какой ошибки в редакторе? Вы имеете в виду ошибку компиляции? Хотите сказать, что это бред иногда компилируется? :)
Понятно, что такая программа не скомпилируется полностью. Но маркер ошибок в строке L2: StdLog.Int(y); появляется только после третьей табуляции. Это относится только к строке после GOTO. В строке, например, L1: StdLog.Int(x);
такое не получается совсем.

Автор:  Илья Ермаков [ Четверг, 03 Декабрь, 2009 16:46 ]
Заголовок сообщения:  Re: серверный режим через сеть

Компилятор может пропускать некоторые ошибки, если есть другие.

Автор:  igor [ Четверг, 03 Декабрь, 2009 17:17 ]
Заголовок сообщения:  Re: серверный режим через сеть

Илья Ермаков писал(а):
Компилятор может пропускать некоторые ошибки, если есть другие.
Компилятор пропускает ошибки, которые стоят слишком тесно (DevCPM):
Код:
   PROCEDURE Mark* (n, pos: INTEGER);
   BEGIN
      ...
         IF (pos < lastpos) OR (lastpos + 9 < pos) THEN
            ...
            INC(errors)
         END;
      ...
   END Mark;

Автор:  id_ler [ Пятница, 04 Декабрь, 2009 14:25 ]
Заголовок сообщения:  Re: серверный режим через сеть

Нельзя ли вопрос о маркерах вынести в отдельную тему? Хотелось бы понять ее до конца. Сейчас не могу точно сформулировать вопрос. Ясно только, что правильное форматирование исходника имеет не последнее значение в понимании кода.

Автор:  Info21 [ Пятница, 04 Декабрь, 2009 15:33 ]
Заголовок сообщения:  Re: серверный режим через сеть

id_ler писал(а):
Нельзя ли вопрос о маркерах вынести в отдельную тему? Хотелось бы понять ее до конца. Сейчас не могу точно сформулировать вопрос. Ясно только, что правильное форматирование исходника имеет не последнее значение в понимании кода.
Почаще нажимайте Ctrl+K. После каждого исправления.
Жалко что ли? :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/