Как генерировать пустые определения, заданные заголовочным файлом

У меня есть сторонняя библиотека, которая по разным причинам я пока не хочу связывать. Я не хочу забивать свой код, но удалять всю ссылку на его API, поэтому я хотел бы создать его фиктивную реализацию.

Есть ли какой-нибудь инструмент, который я могу использовать, который выплевывает пустые определения классов, учитывая их заголовочные файлы? Это нормально, чтобы вернуть nulls, false и 0 по умолчанию. Я не хочу ничего делать "на лету" или что-нибудь умное - библиотеки макетов объектов, на которые я смотрел, выглядят довольно тяжелыми? В идеале я хочу что-то использовать, например

$ generate-definition my_header.h > dummy_implemtation.cpp

Я использую Linux, GCC4.1

Ответ 1

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

Быстрый поиск этот поток, который содержит много рекомендаций для парсеров, чтобы сделать что-то подобное.

В худшем случае вы можете использовать SWIG → Python, а затем использовать отражение для печати фиктивной реализации.

Извините, это всего лишь полу-ответ, но я не думаю, что есть существующий инструмент для этого (кроме фальшивой структуры, которая, вероятно, такая же работа, как и с использованием синтаксического анализатора).

Ответ 2

Создайте одно тестовое приложение, которое считывает файл заголовка и создает исходный файл. Тест-приложение должно анализировать файл заголовка, чтобы узнать имена функций.