Лабораторная №4 — задание 4.1D #
Нужно реализовать для своего языка поддержку инструкций, ввода-вывода и переменных.
⚠️ Обратите внимание #
Это задание выполняется по спецификации грамматики, подготовленной аналитиком в задании 4.1A.
- Спецификация должна появиться до начала кодирования — так же, как и в реальных проектах.
- Вы можете составлять спецификацию совместно с аналитиком, а затем приступить к реализации.
- Ждать проверки спецификации преподавателем не нужно.
Порядок выполнения #
- Получите спецификацию грамматики выражений для своего языка программирования у аналитика
- Допишите список тестов синтаксического анализатора
- список тестов ранее был добавлен в
tests/Parser.UnitTests/TESTLIST.md - вы можете добавить в список тестов новые разделы под новые возможности языка
- список тестов ранее был добавлен в
- Доработайте синтаксический анализатор по TDD
Требования к списку тестов #
Список тестов должен соответствовать спецификации, подготовленной аналитиком:
- Список должен быть полным — каждый тип инструкции, каждое правило спецификации должно быть покрыто хотя бы одним тестом
- Не нужно на каждую фразу спецификации делать отдельный тест, поскольку один тест может проверить несколько вещей
- Пример: тест разбора выражения
pi * radius ** 2проверяет сразу два оператора и незачем разделять его на два теста
- Список тестов должен быть корректным — в нём нет лишних пунктов, противоречащих спецификации
- Антипример: спецификация лексики говорит, что идентификаторы начинаются только с буквы, а тест проверяет разбор идентификатора
_myField
- Антипример: спецификация лексики говорит, что идентификаторы начинаются только с буквы, а тест проверяет разбор идентификатора