Вариант №29
Разработать инструмент командной строки для учебного конфигурационного языка, синтаксис которого приведен далее. Этот инструмент преобразует текст из входного формата в выходной. Синтаксические ошибки выявляются с выдачейсообщений.
Входной текст на учебном конфигурационном языке принимается из файла, путь к которому задан ключом командной строки. Выходной текст на языке json попадает в стандартный вывод.
Многострочные комментарии:
/#
Это многострочный
комментарий
#/
Массивы:
({ значение, значение, значение, ... })
Имена:
[_A-Z][_a-zA-Z0-9]*
Значения:
- Числа.
- Массивы.
Объявление константы на этапе трансляции:
(define имя значение)
Вычисление константного выражения на этапе трансляции (постфиксная форма), пример:
@(имя 1 +)
Результатом вычисления константного выражения является значение.
Для константных вычислений определены операции и функции:
- Сложение.
- abs().
Все конструкции учебного конфигурационного языка (с учетом их возможной вложенности) должны быть покрыты тестами. Необходимо показать 2 примера описания конфигураций из разных предметных областей.
Программа предназначена для вывода данных в формате Json из обычного текстового файла с расширением .txt. В файле config.txt необходимо написать программу, которая будет конвертирована в Json при выводе.
!Внимание! Программа должна быть написана строго по шаблонам, которые показаны в условиях задачи. При неправильном написании программы файл конфигурации создан будет только с корректными строками.
Запуск программы осуществляется из командной строки:
cd target_3
python config_parser.py config.txt
!Внимание! Если запуск осуществляется через PowerShell, то команда запуска выглядит так:
cd target_3
Get-Content config.txt | python config_parser.py
Для запуска юнит-тестов в коммандной строке необходимо написать:
cd target_3
python -m unittest discover -s tests -p "test_case_*.py"
Вариант 1
Вариант 2




