и ещё предлагаю: добавить в компилятор и в репорт языка цикл Дейкстры. только немного расширеный вариант:
## Код:
```
LOOP
  <this executes at each iteration>
DO IF cond0 THEN
  …
DO IF cond1 THEN
  …
END
```

синтаксис немного уродливый, но я не хочу вводить новые ключевые слова.
часть, которая исполняется на каждом шаге — опциональна.

или такой вариант синтаксиса:
## Код:
```
LOOP
  <this executes at each iteration>
| IF cond0 DO
  …
| ELSIF cond1 DO
  …
END
```


почему не классика с WHILE? чтобы было удобно реализовывать штуки типа sequence shift без копипасты:
## Код:
```
LOOP
  file.ReadCh(ch)
DO IF ~file.eof THEN
  …
END
```


в конце-концов, есть же, кажется, консенсус, что цикл Дейкстры — хорошо. и омики уже вряд ли будут развивать Component Pascal — так почему бы нам не взять этот флаг и не понести дальше?

синтаксис кривоватый, но зато в таком виде все старые исходники будут компилироваться как и раньше. почему именно IF там? потому что `DO WHILE …` можно прочитать как «исполняй только эту ветку пока страж цикла истина», а с `IF`, мне кажется, более понятно, что ветка исполнится. сеточку `DO IF` удобно выравнивать, и парзеру легче замечать ошибки, поэтому `DO IF … DO IF…`, а не `DO ELSIF` или подобное. хотя `DO ELSIF` тоже можно, конечно. но мне так не очень нравится.

прошу уважаемых коллег высказываться. если у вас есть идеи по более красивому синтаксису — тоже, пожалуйста, не стесняйтесь. я, конечно, буду защищать свой вариант, но меня возможно переубедить хорошими аргументами. ;-)

реализацию финального варианта в компиляторе я беру на себя.

я понимаю и опасность ломания компилятора, и потерю совместимости с другими реализациями — но это конкретное изменение того стоит, мне кажется. если мы утрясём синтаксис и реализуем у себя — остальные подтянутся; изменение несложное, а пользу явную вижу я.