Реализован парсер (лексический анализатор, синтаксический анализатор, генератор кода) потокового калькулятора, с использованием EBNF (или аналогов), на вход программы подаётся текстовый файл с числовыми данными фиксированной ширины, на выходе должен быть сформирован текстовый файл, содержащий результаты вычислений. Вычисления выполняются в цикле для каждой строчки входящего файла, с возможностью использовать результаты вычислений предыдущих шагов (для расчёта накопительных итогов).
Правила (вычисления) для потокового калькулятора задаются через текстовый файл calc.txt
Приложение выводит результат расчёта
Описание входного файла:
• Текстовый файл (in.txt)
• Разделитель значений «;»
• До 5 значений в колонках (может быть меньше)
• Количество значений в строках – без ограничений
• Если значение не указано, то калькулятор воспринимаeт его как 0
• Каждая колонка воспринимаeтся калькулятором как переменные V1, V2, V3, V4, V5
• Разделитель дробной части «.»
Описание используемых операций:
• Сложение
• Вычитание
• Умножение
• Деление
• Оператор условия (if <; > then <;>; else <;>;)
• Цикл (по функциональности цикла for)
• Возможность использования переменных, для сохранения результатов расчета
• Вывод данных в текстовый файл (команда textout)
Разработка на Visual Studio 2022 C++
Год разработки 2023