Цель этого чекпоинта - научиться строить синтаксическое дерево разбора по имеющейся грамматике.
Грамматика находится в файле: reqs-draft. Грамматику можно модифицировать на свое усмотрение. Важная просьба - не упрощайте грамматику! Основные конструкции должны остаться!
Для каждого нетерминала необходимо создать базовый класс, для каждого правила при этом необходимо создать собственный класс, который будет являться наследником базового класса.
Пример можно найти в примере арифметики.
Есть способ, который позволяет проверить, что для базовых примеров программ из языка дерево является актуальным.
Дополнительным облегчением для дальнейшей работы будет включение паттерна Visitor
Приветствуется использование фреймворков юнит-тестирования!