Элодий дописывает мелом на полу третью строку, и Узор уже гудит рядом: три строки, одна из них с отступом. В прошлом уроке ты описывал языки грамматиками и узнал, что регулярка это автомат без памяти. Слова программы (имена, числа, операторы) такой автомат читает легко. А вот где кончился блок, он сказать не может: для этого надо помнить, какие отступы были выше. У Python отступ это слово, и чтобы его услышать, лексеру нужна память.
В уроке 68 ты уже писал лексер: s-выражения в токены Token(kind, text, line, column). Здесь та же форма токена, но язык сложнее. В нём два десятка операторов, строки в двух кавычках, переводы строк, которые то значат, то нет, и отступы. И есть с кем сверяться: у Python свой лексер, модуль tokenize, и твой должен отвечать как он, до столбца.
урок из курса
Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.