Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб | |
Максимальный балл: | 10 |
Требуется написать программу, проводящую синтаксический анализ простейших выражений.
Простейшие выаржения включают числовые литералы, идентификаторы переменных,
операции +
, -
, *
, /
и скобки для группировки операций.
Анализатор должен представлять доработку утилиты командной строки из предыдущего задания,
принимающую в качестве параметра имя файла с исходным кодом и ключ для отличения от прочих режимов работы.
Анализатор должен определить абстрактное синтаксическое дерево.
Исходный код анализатора должен быть выделен в отдельный класс/модуль, имеющий.
Репозиторий с анализатором должен содержать автоматические тесты, каждый тест должен включать входной и выходной файл.
Отправьте ссылку на конкретный коммит в репозитории на Github, например
https://github.com/klenin/cats-main/commit/dce22c8348808959881ed7d6852c520a41e47c9a
В качестве среды разработки укажите Answer text.
Выходные данные должны содержать абстрактное синтаксическое дерево, изображённое с помощью отступов и, возможно, ASCII графики.
В случае обнаружения ошибки вместо дерева должна выводиться строка, номер символа и текст сообщения об ошибке. После этого анализатор может завершать работу.