Автор Тема: Добавить методы в О7/13  (Прочитано 36697 раз)

kkkk

  • Full Member
  • ***
  • Сообщений: 135
    • Просмотр профиля
Re: Добавить методы в О7/13
« Ответ #90 : Январь 03, 2014, 06:45:25 pm »
А куда делся BEGIN? о_О
BEGIN не нужен, если нет statements. См. грамматику.
В грамматике неточность.

Я бы не стал "исправлять" по своему разумению вполне формальную оригинальную запись. Потому что так можно далеко зайти (особенно если иметь "непаскальный" опыт).

По ней вдобавок получается, что после StatementSequence перед RETURN не должно быть точки с запятой, что опровергают все примеры.

Именно так. Точка с запятой может отсутствовать. Поэтому примеры ничего не опровергают. Видимо Вирт по привычке всегда ее ставит (RETURN как не-statement появился недавно) .

По хорошему должно быть как-то так:

По-хорошему - идиотизм запрещать точку с запятой после последнего филда и после RETURN. Здравый смысл принесенный в жертву формалистике.
Необязательная точка с запятой легко оформляется в формализме, ничего приносить в жертву не нужно.

То, что я мел ввиду "по-хорошему" - это корректное отображение в формальной записи авторской мысли, разумеется, как понял её я. Точка с запятой согласно той грамматике именно обязанна отсутствовать, а ошибиться сразу во всех примерах было бы сложно кому угодно, тут элементарная логика. Я уже обращал внимание http://oberspace.dyndns.org/index.php/topic,571.msg19406.html#msg19406, что в отредактированных материалах Никлауса Вирта присутствует небрежность, стоит ли к этому относиться с непонятным злорадством? Никто Вирта ни "божеством", ни "мэтром", ни чем либо ещё из припасённых за пазухой саркастичных эпитетов не считает.