Задание 4.1D

Лабораторная №4 — задание 4.1D #

Нужно реализовать для своего языка поддержку инструкций, ввода-вывода и переменных.

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

Это задание выполняется по спецификации грамматики, подготовленной аналитиком в задании 4.1A.

  • Спецификация должна появиться до начала кодирования — так же, как и в реальных проектах.
  • Вы можете составлять спецификацию совместно с аналитиком, а затем приступить к реализации.
  • Ждать проверки спецификации преподавателем не нужно.

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

  1. Получите спецификацию грамматики выражений для своего языка программирования у аналитика
  2. Допишите список тестов синтаксического анализатора
    • список тестов ранее был добавлен в tests/Parser.UnitTests/TESTLIST.md
    • вы можете добавить в список тестов новые разделы под новые возможности языка
  3. Доработайте синтаксический анализатор по TDD

Требования к списку тестов #

Список тестов должен соответствовать спецификации, подготовленной аналитиком:

  1. Список должен быть полным — каждый тип инструкции, каждое правило спецификации должно быть покрыто хотя бы одним тестом
    • Не нужно на каждую фразу спецификации делать отдельный тест, поскольку один тест может проверить несколько вещей
    • Пример: тест разбора выражения pi * radius ** 2 проверяет сразу два оператора и незачем разделять его на два теста
  2. Список тестов должен быть корректным — в нём нет лишних пунктов, противоречащих спецификации
    • Антипример: спецификация лексики говорит, что идентификаторы начинаются только с буквы, а тест проверяет разбор идентификатора _myField

Справочные материалы #

  1. Каноничный TDD и список тестов
  2. Пример PsKaleidoscope