Ответ не верный. В UTF-8 есть несколько видов пробелов, табуляций и всяких разделителей. Ширина литеры может плавать от 1 до 6 байт/
Пруф: "UTF-8 (от англ. Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-битный») — одна из общепринятых и стандартизированных кодировок текста, которая позволяет хранить символы Юникода, используя переменное количество байт (от 1 до 6)."https://ru.wikipedia.org/wiki/UTF-8
Таким образом лексический анализатор пришлось бы усложнить на десятки процентов. Это существенно. Речь шла о быстром решении.
Впрочем, компилятор переваривает UTF-8 с исходным текстом на английском языке и русскими комментариями...

Алгоритмы с многобайтовыми кодировками сложны. Тут куда легче использовать кодировку принятую в Веб. Через амперсанд и специализированное описание. Либо, как частное решение -- вводить типизацию для текста в виде управляющих тэгов (метаинформации):
## Код:
```
МОДУЛЬ Тест
(* -*- code:cp1251  -*- *)

...
...
...

КОНЕЦ Тест.
```
