Задание 6.1E

Лабораторная №6 — задание 6.1E #

Нужно реализовать и покрыть тестами построение AST в утилите проверки программ, основанной на ANTLR4.

⚠️ Обратите внимание #

Это задание выполняется на основе иерархии классов узлов AST, подготовленной разработчиком в задании 5.1D.

Порядок выполнения #

  1. Получите у разработчика (или напишите вместе с ним) модуль Ast, описывающий иерархию классов узлов AST
  2. Выясните, как можно построить AST с помощью ANTLR4
  3. Реализуйте построение AST и пройдите тесты:
    • позитивные тесты программ, правильных с точки зрения синтаксиса и семантики
    • негативные тесты программ, неправильных с точки зрения синтаксиса

Другими словами, вы частично переиспользуете код вместе с разработчиком:

  • в утилите проверки программ вы используете свой лексер/парсер на базе ANTLR4, а также общий модуль Ast
  • в интерпретаторе разработчик использует свой рукописный лексер/парсер, а также общий модуль Ast

Проверка построения факта AST #

На данном этапе вам достаточно проверять, что:

  • в позитивных тестах AST построено без выброса исключения
  • в негативных тестах выброшено исключение ожидаемого типа

Более глубоких проверок самого AST не требуется.