![](https://webcf.waybackmachine.org/web/20220531212616im_/https://habrastorage.org/getpro/habr/upload_files/697/b77/be1/697b77be190954644552d81563a8a0d3.png)
Привет, Хабр! В статье я покажу, как представить синтаксические деревья с помощью фиксированной точки для функторов. Такое представление позволяет снабжать каждый лист дерева дополнительной информацией о самом листе (например позицией выражение в файле с программой), при этом непосредственно перед обработкой листа мы можем убрать из него эту информацию. Таким образом во время обработки в конструкторах синтаксического дерева будут находиться только необходимые данные, что позволяет писать более чистый код для его обработки. К концу статьи мы напишем интерпретатор для простого императивного языка программирования, на примере которого будет показано всё вышеперечисленное