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