Раздел 45 · Python backend: Тарбадель

Лексер s-выражений

middle-senior~35 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Вторая распечатка лежит на ящике у стойки, Элодий прижал её мелом, чтобы не унёс сквозняк от вентиляторов. Это скрипт северного перекрёстка у депо:

; перекрёсток у депо, северная сторона
(define green-north 45)
(if (> queue 12)
    (set! green-north (+ green-north 15))
    'ok)
(say "север:\tзелёный")

Узор водит над листом объективом и бормочет: скобка, define, тире, сорок пять… Он сбился на green-north: одно это слово или три?

Калькулятор из прошлого урока ел готовое дерево из списков Python. Чтобы дерево получилось из текста, текст сначала режут на слова. Этим занимается первая ступень интерпретатора, лексер. Он не понимает, что значит программа: ему всё равно, define там или defne. Он знает только, где кончается одно слово и какого оно вида.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.