Я - счастливый пользователь СГИБ . Это - реализация чистого Python Lex & Yacc, с большим количеством маленьких тонкостей, которые делают его вполне Pythonic и простой в использовании. Начиная с Lex & Yacc являются самым популярным lexing & парсинг инструментов и используется для большинства проектов, СГИБ имеет преимущество положения на плечах гигантов. Большое знание существует онлайн на Lex & Yacc, и можно свободно применить его для СЛОЖЕНИЯ.
СГИБ также имеет пользу страница документации с некоторыми простыми примерами для запущения Вас.
Для списка большого количества инструментов парсинга Python, см. это .
В этом контексте программа драйвера - это просто программа, которая использует класс или алгоритм, который вы разрабатываете. В основном он используется для тестирования вашего кода во время его разработки.
Это просто программа, предназначенная для вызова различных API и частей логики, с которыми вы работаете. Например, если у вас есть библиотека, которая считывает файлы XML, выполняет какое-то преобразование и записывает преобразованные данные в другой файл, для работы с этой библиотекой вы создаете программу драйвера, которая ничего не делает, кроме вызова этих 3 API и выполняет обработку ошибок. - например, он управляет / направляет ваш API для выполнения своей работы.
Драйвер обычно представляет собой (относительно) простую исполняемую программу, предназначенную для проверки некоторых компонентов, которые не могут быть выполнены напрямую, например библиотеки, ADT или набора тестов и т. Д. Например, у вас может быть Класс таблицы, который поддерживает чтение в CSV и поддерживает вывод в CSV и HTML. Вы можете написать простую программу, которая принимает в командной строке имя входного CSV-файла и формат для вывода, чтобы вы могли подтвердить, что класс Table выполняет то, что вы ожидаете. Все, что сделает драйвер, - это построит экземпляр таблицы, прочитает файл и использует его для записи в указанном формате.
Программа драйвера, насколько я понимаю, - это просто простой класс, который инстанцирует всю программу, которую вы создали.
В университетских программах мы начали изучать Java с создания очень простых драйверов, которые просто передаются в параметрах случайным классам и методам.