Лабораторная №6 — задание 6.2E #
Нужно реализовать и покрыть тестами проверки семантики типов данных в утилите проверки программ, основанной на ANTLR4.
⚠️ Обратите внимание #
Это задание выполняется по спецификации правил семантики, подготовленной аналитиком в задании 6.2A.
- Спецификация должна появиться до начала кодирования — так же, как и в реальных проектах.
- Вы можете составлять спецификацию совместно с аналитиком, а затем приступить к реализации.
- Ждать проверки спецификации преподавателем не нужно.
Порядок выполнения #
- Получите спецификацию семантики для своего языка программирования у аналитика
- Получите у разработчика (или напишите вместе с ним) список тестов в формате markdown
- Получите у разработчика (или напишите вместе с ним) модуль Semantics, выполняющий семантические проверки AST
- Подключите этот модуль к своей утилите проверки программ на основе ANTLR4
Другими словами, вы частично переиспользуете код вместе с разработчиком:
- в утилите проверки программ вы используете свой лексер/парсер на базе ANTLR4, а также общие модули Ast и Semantics
- в интерпретаторе разработчик использует свой рукописный лексер/парсер, а также общие модули Ast и Semantics
Требования к тестам #
- Тесты должны покрывать как семантику типов, так и прочие правила семантики
- Должны быть тесты различных типов
- позитивные тесты программ, правильных с точки зрения синтаксиса и семантики (из прошлых заданий)
- негативные тесты программ, неправильных с точки зрения синтаксиса (из прошлых заданий)
- негативные тесты программ, неправильных с точки зрения семантики (новые тесты)
В тестах достаточно проверять, что:
- в позитивных тестах AST построено без выброса исключения
- в негативных тестах выброшено исключение ожидаемого типа