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