章节大纲

    • В проект внесены существенные изменения (какие вспомню):

      *) все файлы перенесены в пакет compiler
      *) узлы стали dataclass'ами
      *) построение (печать) AST-дерева вынесена в модуль ast_printer
      *) некоторые исправления в грамматике и добавление некоторых ast-узлов
      *) хранение информации о номерах строк и столбцов в исходной программе для узлов построенного AST-дерева (propagate_positions=True для Lark и соответствующая обработка)
      *) попытки обработки синтаксических ошибок
      *) добавлена проверка семантики
      *) разные более мелкие исправления

      В ваших проектах, даже не знаю, что будет проще, адаптировать этот проект под вашу грамматику или же оставить как есть и  просто добавить семантику. Извините, что так получилось, но мне на будущее (для следующих курсов) хотелось проект привести проект к более удачной структуре (возможно, я еще какие-то изменения буду вносить, если посчитаю нужным). Ну и вы вынуждены будете разобраться, что к чему, а не просто копи-паст.