Задание 3.1D

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

Нужно создать пустой модуль синтаксического анализа и написать для него список тестов.

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

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

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

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

  1. Получите спецификацию грамматики выражений для своего языка программирования у аналитика
  2. Создайте пустой проект реализации: dotnet new classlib -o src/Parser
    • добавьте его в решение: dotnet sln add src/Parser
    • добавьте ссылку на библиотеку лексического анализа: dotnet add src/Parser reference src/Lexer
  3. Создайте пустой проект тестов: dotnet new xunit -o tests/Parser.UnitTests
    • добавьте его в решение: dotnet sln add tests/Parser.UnitTests
    • добавьте ссылку на библиотеку из проекта тестов: dotnet add tests/Parser.UnitTests reference src/Parser
  4. Создайте список тестов tests/Parser.UnitTests/TESTLIST.md
  5. Заполните список тестов всеми сценариями, которые вы можете придумать по спецификации

Реализация синтаксического разбора будет в следующем задании.

Формат списка тестов #

Список тестов должен находится в модуле синтаксического анализа и называется TESTLIST.md

  • Тесты описываются кратко в формате TODO-списка: - [ ] ваш текст
  • Пройденные тесты обозначаются латинской буквой “x”: - [x] ваш текст

Пример заполнения:

# Список тестов

## Список сценариев

- [ ] Разбор выражения из одного числа: `2025`
- [ ] Разбор сложения и вычитания: `1.128 + 7.5 - 8`
- [ ] Учёт левой ассоциативности при вычитании: `1.128 - 8 + 7.5`

Пример MemSql #

Можно ориентироваться на Пример MemSql

Список тестов в примере: tests/SqlParser.UnitTests/TESTLIST.md