Если мы исключим строковый комментарий для простоты, то мы обнаружим, что ваш фрагмент кода содержит эти 11 токенов:
for
I
:=
0
to
aList
.
Count
-
1
do
Чтобы компилятор мог их распознать, они должны бытьпредставлены однозначно.То есть, если любые два соседних токена, помещенные рядом друг с другом, создают двусмысленность относительно их значения, тогда delimiter (space
, tab
, carriage return
, line feed
)между ними требуется.
Теперь, если вы возьмете любую такую пару токенов, вы увидите два места, где действительно нужны разделители : одно находится между for
и I
(forI
против for I
), а другой - от to
до aList
(toaList
против to aList
).Что касается разграничения 0
и to
, в частности (и, аналогично, 1
и do
), они не создают никакой неопределенности для компилятора .0
- это цифра, t
- нет, поэтому t
не может сформировать один токен с 0
любым разумным (для компилятора) способом.То есть, как только компилятор встречает t
, он сразу же распознает его как начало другого токена, без необходимости разделять их двумя.
Обычно мы ставим пробел между числами ипоследующие «слова» (идентификаторы или ключевые слова), потому что это улучшает читаемость нашего кода, но это все, что нужно сделать.