Задача E. Семантический анализ

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:10  

Условие

Требуется написать программу, проводящую семантический анализ подмножества выбранного вами языка программирования. Подмножество зависит от конкретного языка, но обычно включает следующие ограничения:

Репозиторий должен содержать файл с грамматикой реализованного подмножества. Грамматика должна быть получена путём удаления части стандартной грамматики для выбранного языка. Реализованное подмножество должно быть строгим, то есть стандартный компилятор / интерпретатор должен принимать любую программу, которую принимает ваш анализатор.

Анализатор должен представлять доработку утилиты командной строки из предыдущего задания, принимающую в качестве параметра имя файла с исходным кодом и ключ для отличения от прочих режимов работы.

Анализатор должен определить абстрактное синтаксическое дерево и таблицы символов.

Репозиторий с анализатором должен содержать автоматические тесты, каждый тест должен включать входной и выходной файл.

Анализатор должен определять все виды семантических ошибок, включая несоответствие типов, необъявленные переменные и т.п.

Формат входных данных

Отправьте ссылку на конкретный коммит в репозитории на Github, например

https://github.com/klenin/cats-main/commit/dce22c8348808959881ed7d6852c520a41e47c9a

В качестве среды разработки укажите Answer text.

Формат выходных данных

Выходные данные должны содержать абстрактное синтаксическое дерево, изображённое с помощью отступов и, возможно, ASCII графики.

В случае обнаружения ошибки вместо дерева должна выводиться строка, номер символа и текст сообщения об ошибке. После этого анализатор может завершать работу.


0.311s 0.007s 13