Shuai,

I too wanted something like this a few months back as I was attempting to bind 
OpenGL with gprolog. Perhaps it might be easier to embed gprolog within the 
thing you are attempting to call instead, so for me, instead of creating an 
OpenGL binding I embedded gprolog within a C program that initialised the 
framework..

Maybe reading: http://www.swig.org/Doc3.0/SWIGDocumentation.html#Extending

And be the first to do it..that would be useful indeed!

My only idea would be to use the GNU compiler options to output the parse tree 
as an XML file and then use XSLT to do something clever like generating the 
interface definitions… I have heard that the gnu output is hard to deal with 
though..

All thebest,
Sean Charles


On 11 Apr 2014, at 16:14, Shuai Wang <[email protected]> wrote:

> So basically I am using Prolog to call a large number of C functions using 
> GNU-Prolog.
> 
> Here is an example:
> 
> int add(int a, int b)
> {
> int res = a + b;
> 
> return res;
> }
> If I want to call this function from Prolog code, I need to create this 
> interface:
> 
> #include <gprolog.h>
> 
>  PlBool add_interface(int a, int b, int* r)
> {
>   *r = add(a, b);
> }
> And In the Prolog code, I need add this :
> 
>  :- foreign(add(+integer, +integer, -integer)).
> So I am dealing with a large number of C functions, and manually create these 
> interface one by one would be quite time consuming...
> 
> Of course I can write an ad-hoc tool to do this creation(Using CIL 
> probably..), but I just don't want to reinvent the wheel.
> 
> So my question is :
> 
> Is there any tool that can automatically generate Prolog callable interface 
> from C functions?
> 
> 
> _______________________________________________
> Users-prolog mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/users-prolog

_______________________________________________
Users-prolog mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/users-prolog

Reply via email to