<<
>>

Компромисс

Теперь, когда мы знаем как работать с точками с запятой, означает ли это, что я собираюсь поместить их в KISS/TINY? И да и нет. Мне нравится дополнительный сахар и защита, которые приходят с уверенным знанием, где заканчиваются утверждения.

Но я не изменил своей антипатии к ошибкам компиляции, связанным с точками с запятой.

Так что я придумал хороший компромис: сделаем их необязательными!

Рассмотрите следующую версию Semi:

{–}

{ Match a Semicolon }

procedure Semi;

begin

if Token = ';' then Next;

end;

{–}

Эта процедура будет принимать точку с запятой всякий раз, когда вызвана, но не будет настаивать на ней. Это означает, что когда вы решите использовать точки с запятой, компилятор будет использовать дополнительную информацию чтобы удержаться на правильном пути. Но если вы пропустите одну (или пропустите их всех) компилятор не будет жаловаться. Лучший из обоих миров.

Поместите эту процедуру на место в первую версию вашей программы (с синтаксисом для C/Ada) и вы получите TINY Version 1.2.

<< | >>
Источник: Креншоу Джек. Давайте создадим компилятор!. 1999

Еще по теме Компромисс:

  1. КОМПРОМИСС
  2. ВЫ И АУДИТОРИЯ: НИКАКОЙ ЛЮБВИ, НИКАКИХ КОМПРОМИССОВ
  3. § 25 Прекращение обязательств посредством нового договора. – Обновление договора. – Признаки оного и последствия. – Прекращение договора по условию. – Мировая сделка. – Компромисс. – Русский закон мирового соглашения.
  4. ОТТЕСНЕНИЕ
  5. 12. Личность есть гражданин царства Божьего, а не царства кесаря
  6. СНОВИДЕНИЕ: СХЕМА ВОЗНИКНОВЕНИЯ
  7. Лулу в знаке Весов
  8. Венера в VII доме
  9. ОРИЕНТАЦИЯ: ВИД
  10. В знаке Весов
  11. ТАЙНЫЕ ПРИЧИНЫ, ЗАСТАВЛЯЮЩИЕ СПОРИТЬ МУЖЧИН
  12. ПОЛЯРИЗАЦИЯ ГРУППОВАЯ
  13. Ретроградный Плутон в знаке Водолея