[fpc-pascal]Mapping Object Pascal Classes to C++ Classes
Olivier Coursiere
olivier.coursiere at laposte.net
Thu Nov 14 02:00:29 CET 2002
Hi all,
>> Afaik you're one of the BeFPC people, right?
>Yeah, except I'm on hiatus from that project. There are two French
guys leading
>up at the moment, and they are wrapping the API directly with a
different
>approach to that I started with. I want to wrap the API in a VCL/LCL
style
>using a flattened universal API. This will get picked up at some point
in the
>new year. The groundwork is there, but I have to make it more generic.
>
I am one of the french guys ;-)
>The other guys have written a class mapper of sorts. I haven't really
been
>keeping up with them.
In fact, the class mapper is not yet finished.
Our tool is an automated C++ class flattener, but it is specifically
designed
for the C++ API of BeOS :
- no C++ exception
- no template
- few multi-inheritance
- support of hooks to answer to system events (optional and maybe a
BeOS feature)
It should also work on other systems if your API respect the above
requirements
(with some minor change i think).
We have a proof of concept tool that generate the C/C++ part of the
glue code.
This tool is based on stubgen and is written in C.
Curently, i am writing a new tool (codegen) that will also generate the
pascal part.
How it works :
codegen use a XML description of the header and a basic typmap file.
It will generate pascal and C/C++ glue code.
It use the "flat" way, but it also generate a pascal class to wrap C
functions
(each C++ classe will have a corresponding pascal one)
The XML description is generated with headertoxml. This tool use the
stubgen parser in a shared object (stubgen.so). I pack stubgen in
a shared object to write most of the code in pascal.
More informations (sources) at
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/befpc/bepascal/bepascal/
in those directories :
- codegen
- headertoxml
- stubgen
- stubgen.so
>Supporting FPC would be cool too.
This is in my TODO's list too but i have no time yet because of the
above project...
More information about the fpc-pascal
mailing list