Есть ли инструмент, который может автоматически генерировать вызываемый интерфейс Prolog из функций C?
Так что в основном я использую Prolog для вызова большого количества функций на C, используя GNU-Prolog.
Вот пример:
int add(int a, int b)
{
int res = a + b;
return res;
}
Если я хочу вызвать эту функцию из кода Пролога, мне нужно создать этот интерфейс:
#include <gprolog.h>
PlBool add_interface(int a, int b, int* r)
{
*r = add(a, b);
}
И в коде Пролог, мне нужно добавить это:
:- foreign(add(+integer, +integer, -integer)).
Так что я имею дело с большим количеством функций C, и создание этих интерфейсов вручную по одной заняло бы довольно много времени...
Конечно, я могу написать специальный инструмент для этого создания (вероятно, используя CIL...), но я просто не хочу изобретать велосипед.
Итак, мой вопрос:
Есть ли инструмент, который может автоматически генерировать вызываемый интерфейс Prolog из функций C?