Как генерировать пустые определения, заданные заголовочным файлом
У меня есть сторонняя библиотека, которая по разным причинам я пока не хочу связывать. Я не хочу забивать свой код, но удалять всю ссылку на его API, поэтому я хотел бы создать его фиктивную реализацию.
Есть ли какой-нибудь инструмент, который я могу использовать, который выплевывает пустые определения классов, учитывая их заголовочные файлы? Это нормально, чтобы вернуть nulls, false и 0 по умолчанию. Я не хочу ничего делать "на лету" или что-нибудь умное - библиотеки макетов объектов, на которые я смотрел, выглядят довольно тяжелыми? В идеале я хочу что-то использовать, например
$ generate-definition my_header.h > dummy_implemtation.cpp
Я использую Linux, GCC4.1
Ответы
Ответ 1
Это сложнее, чем вам может понравиться, поскольку синтаксический анализ С++ может быстро стать сложной задачей. Лучше всего было бы выбрать существующий парсер с приятным интерфейсом.
Быстрый поиск этот поток, который содержит много рекомендаций для парсеров, чтобы сделать что-то подобное.
В худшем случае вы можете использовать SWIG → Python, а затем использовать отражение для печати фиктивной реализации.
Извините, это всего лишь полу-ответ, но я не думаю, что есть существующий инструмент для этого (кроме фальшивой структуры, которая, вероятно, такая же работа, как и с использованием синтаксического анализатора).
Ответ 2
Создайте одно тестовое приложение, которое считывает файл заголовка и создает исходный файл. Тест-приложение должно анализировать файл заголовка, чтобы узнать имена функций.