1. automatic dll wrapping
This is a multi-part message in MIME format.
------=_NextPart_000_0042_01C0C5F2.AF194400
charset="iso-8859-2"
I was thinking that it could be possible to make a program which would =
automatically wrap a dll. It would have .dll and .h file for input, or =
maybe just .h file, and output would be one big .ew file. It =
could/should also handle strings and structures. My WinMania library =
could be automatically generated without any work (hand editing) with =
such program. This is definiteley something that will/should probalby be =
done sometimes for Eu. euAllegro library could also be generated with =
such program. It would be like C to Eu translator, but only for =
functions in dlls. This would be a challenging task for someone to do. =
It would basically be a parser (very powerful, like a C compiler almost) =
for .h files. Then it would be using C libraries in Euphoria very easy, =
you would just generate appropriate .ew file for a dll and you could use =
it like in C but with Euphoria language. Anybody knows of any limits why =
this couldn't be done, anybody thought of this before?
------=_NextPart_000_0042_01C0C5F2.AF194400
Content-Type: text/html;
charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-2" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2614.3401" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>I was thinking that it could be =
possible to make a=20
program which would automatically wrap a dll. It would have .dll and .h =
file for=20
input, or maybe just .h file, and output would be one big .ew file. It=20
could/should also handle strings and structures. My WinMania =
library could=20
be automatically generated without any work (hand editing) =
with such=20
program. This is definiteley something that will/should =
probalby be=20
done sometimes for Eu. euAllegro library could also be generated=20
with such program. It would be like C to Eu translator, but =
only for=20
functions in dlls. This would be a challenging task for someone to do. =
It would=20
basically be a parser (very powerful, like a C compiler almost) for .h=20
files.</FONT><FONT face=3DArial size=3D2> Then it would be using C =
libraries in=20
Euphoria very easy, you would just generate appropriate .ew file =
for a dll=20
and you could use it like in C but with Euphoria language. Anybody knows =
of any=20
limits why this couldn't be done, anybody thought of this=20
------=_NextPart_000_0042_01C0C5F2.AF194400--
2. Re: automatic dll wrapping
This is a multi-part message in MIME format.
------=_NextPart_000_0055_01C0C596.29A32D60
charset="iso-8859-2"
Hi,
Yes this has been attempted before.
Look in the archives for SWIG/Euphoria by the great David Cuny!!!
SWIG is an Open Source project that is used to wrap DLL's for
a number of scripting languages (Perl and Python being the Primary =
ones??).
SWIG/Euphoria is/was David Cuny's attempt for a Euphoria version. =20
I can't remember how good it was ... it worked at some level for sure.
It would be a good starting point though and I'm sure full of =
information
for anyone attempting similar things.
I also attempted my own version when I was wrapping Allegro without =
sucess.
If you know pascal the FreePascal people have a H2PAS program which
converts C header files to pascal. Again this has limiations but might
prove to have useful code or ideas.=20
Once you can parse a C Header file I believe the code generation =
wouldn't
be to difficult.
Ray Smith.
----- Original Message -----=20
From: Tone Skoda=20
To: EUforum=20
Sent: Monday, April 16, 2001 5:26 AM
Subject: automatic dll wrapping
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Maximize your email efficiency with My Topica. Searchable
archives, vacation options, and more. Sign up now at
I was thinking that it could be possible to make a program which would =
automatically wrap a dll. It would have .dll and .h file for input, or =
maybe just .h file, and output would be one big .ew file. It =
could/should also handle strings and structures. My WinMania library =
could be automatically generated without any work (hand editing) with =
such program. This is definiteley something that will/should probalby be =
done sometimes for Eu. euAllegro library could also be generated with =
such program. It would be like C to Eu translator, but only for =
functions in dlls. This would be a challenging task for someone to do. =
It would basically be a parser (very powerful, like a C compiler almost) =
for .h files. Then it would be using C libraries in Euphoria very easy, =
you would just generate appropriate .ew file for a dll and you could use =
it like in C but with Euphoria language. Anybody knows of any limits why =
this couldn't be done, anybody thought of this before?
=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
------=_NextPart_000_0055_01C0C596.29A32D60
Content-Type: text/html;
charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-2" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2614.3500" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Hi,</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Yes this has been attempted =
before.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>Look in the archives for SWIG/Euphoria =
by the great=20
David Cuny!!!</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>SWIG is an Open Source project that is =
used to wrap=20
DLL's for</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>a number of scripting languages (Perl =
and Python=20
being the Primary ones??).</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>SWIG/Euphoria is/was David Cuny's =
attempt for a=20
Euphoria version. </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>I can't remember how good it was ... it =
worked at=20
some level for sure.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>It would be a good starting point =
though and I'm=20
sure full of information</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>for anyone attempting similar =
things.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>I also attempted my own version when I =
was wrapping=20
</FONT><FONT face=3DArial size=3D2>Allegro without sucess.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>If you know pascal the FreePascal =
people have a=20
H2PAS program which</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>converts C header files to =
pascal. Again this=20
has limiations but might</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>prove to have useful code or ideas. =
</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Once you can parse a C Header file I =
believe the=20
code generation wouldn't</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>be to difficult.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Ray Smith.</FONT></DIV>
<DIV> </DIV>
<BLOCKQUOTE=20
style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: =
0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
<DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV=20
style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
<A href=3D"mailto:tone.skoda at siol.net" =
title=3Dtone.skoda at siol.net>Tone Skoda</A>=20
</DIV>
<DIV style=3D"FONT: 10pt arial"><B>To:</B> <A =
href=3D"mailto:EUforum at topica.com"=20
title=3DEUforum at topica.com>EUforum</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Monday, April 16, 2001 =
5:26=20
AM</DIV>
<DIV style=3D"FONT: 10pt arial"><B>Subject:</B> automatic dll =
wrapping</DIV>
</PRE><PRE>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Maximize your email efficiency with My Topica. Searchable
archives, vacation options, and more. Sign up now at
<A =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</PRE>
<DIV><FONT face=3DArial size=3D2>I was thinking that it could be =
possible to make=20
a program which would automatically wrap a dll. It would have .dll and =
.h file=20
for input, or maybe just .h file, and output would be one big .ew =
file. It=20
could/should also handle strings and structures. My WinMania =
library=20
could be automatically generated without any work (hand editing)=20
with such program. This is definiteley something =
that will/should=20
probalby be done sometimes for Eu. euAllegro library could also=20
be generated with such program. It would be like C to =
Eu=20
translator, but only for functions in dlls. This would be a =
challenging task=20
for someone to do. It would basically be a parser (very powerful, like =
a C=20
compiler almost) for .h files.</FONT><FONT face=3DArial size=3D2> Then =
it would be=20
using C libraries in Euphoria very easy, you would just generate=20
appropriate .ew file for a dll and you could use it like in C but with =
Euphoria language. Anybody knows of any limits why this couldn't be =
done,=20
anybody thought of this =
before?</FONT></DIV><PRE>=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
<A =
=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
------=_NextPart_000_0055_01C0C596.29A32D60--
3. Re: automatic dll wrapping
This is a multi-part message in MIME format.
------=_NextPart_000_0042_01C0C59D.138FC360
charset="iso-8859-2"
Hi Tone.
I use a parser I created with help from code by Dave Cuny,
Buddy Hyleberg and others to do a fair bit of the work to wrap=20
Morfit.
It creates an include which wraps all the "define_c_func",
"define_c_proc" stuff and also creates another include with
empty functions (uses function names etc) that are the
actual wrapper functions. These have to be completed by
hand (eg peeks, pokes, atom_to_floats etc). It also "imports"
all completed functions from the previous Morfit version.
It isn't very good code (my parts, not the bits I ripped off
others!) but I will send it to you if you like. The Morfit .h file
also seems to be pretty simple to parse compared to others
I have seen.
Good luck with it.
Mark=20
----- Original Message -----=20
From: Ray Smith=20
To: EUforum=20
Sent: Sunday, April 15, 2001 9:53 AM
Subject: Re: automatic dll wrapping
Hi,
Yes this has been attempted before.
Look in the archives for SWIG/Euphoria by the great David Cuny!!!
SWIG is an Open Source project that is used to wrap DLL's for
a number of scripting languages (Perl and Python being the Primary =
ones??).
SWIG/Euphoria is/was David Cuny's attempt for a Euphoria version. =20
I can't remember how good it was ... it worked at some level for sure.
It would be a good starting point though and I'm sure full of =
information
for anyone attempting similar things.
I also attempted my own version when I was wrapping Allegro without =
sucess.
If you know pascal the FreePascal people have a H2PAS program which
converts C header files to pascal. Again this has limiations but =
might
prove to have useful code or ideas.=20
Once you can parse a C Header file I believe the code generation =
wouldn't
be to difficult.
Ray Smith.
----- Original Message -----=20
From: Tone Skoda=20
To: EUforum=20
Sent: Monday, April 16, 2001 5:26 AM
Subject: automatic dll wrapping
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Maximize your email efficiency with My Topica. Searchable
archives, vacation options, and more. Sign up now at
I was thinking that it could be possible to make=20
a program which would automatically wrap a dll. It would have .dll and =
.h file=20
for input, or maybe just .h file, and output would be one big .ew =
file. It=20
could/should also handle strings and structures. My WinMania library=20
could be automatically generated without any work (hand editing)=20
with such program. This is definiteley something that will/should=20
probalby be done sometimes for Eu. euAllegro library could also=20
be generated with such program. It would be like C to Eu=20
translator, but only for functions in dlls. This would be a =
challenging task=20
for someone to do. It would basically be a parser (very powerful, like =
a C=20
compiler almost) for .h files. Then it would be=20
using C libraries in Euphoria very easy, you would just generate=20
appropriate .ew file for a dll and you could use it like in C but with =
Euphoria language. Anybody knows of any limits why this couldn't be =
done,=20
anybody thought of this =
before?=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
------=_NextPart_000_0042_01C0C59D.138FC360
Content-Type: text/html;
charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-2">
<META content=3D"MSHTML 5.50.4611.1300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Hi Tone.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>I use a parser I created with help from =
code by=20
Dave Cuny,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Buddy Hyleberg </FONT><FONT =
face=3DArial=20
size=3D2>and others to do a fair bit of the work to wrap =
</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Morfit.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>It creates an include which wraps all =
the=20
"define_c_func",</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>"define_c_proc" stuff and also creates =
another=20
include with</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>empty functions (uses function names =
etc) that are=20
the</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>actual wrapper functions. These have to =
be=20
completed by</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>hand (eg peeks, pokes, atom_to_floats =
etc). It also=20
"imports"</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>all completed functions from the =
previous=20
Morfit version.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>It isn't very good code (my parts, =
not the=20
bits I ripped off</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>others!) but I will send it to you if =
you like. The=20
Morfit .h file</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>also seems to be pretty simple to parse =
compared to=20
others</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>I have seen.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Good luck with it.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Mark</FONT> </DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV=20
style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
<A title=3Dsmithr at ix.net.au href=3D"mailto:smithr at ix.net.au">Ray =
Smith</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>To:</B> <A =
title=3DEUforum at topica.com=20
href=3D"mailto:EUforum at topica.com">EUforum</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Sunday, April 15, 2001 =
9:53=20
AM</DIV>
<DIV style=3D"FONT: 10pt arial"><B>Subject:</B> Re: automatic dll =
wrapping</DIV>
<A =
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>Look in the archives for =
SWIG/Euphoria by the=20
great David Cuny!!!</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>SWIG is an Open Source project that =
is used to=20
wrap DLL's for</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>a number of scripting languages (Perl =
and Python=20
being the Primary ones??).</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>SWIG/Euphoria is/was David Cuny's =
attempt for a=20
Euphoria version. </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>I can't remember how good it was ... =
it worked at=20
some level for sure.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>It would be a good starting point =
though and I'm=20
sure full of information</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>for anyone attempting similar=20
things.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>I also attempted my own version when =
I was=20
wrapping </FONT><FONT face=3DArial size=3D2>Allegro without =
sucess.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>If you know pascal the FreePascal =
people have a=20
H2PAS program which</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>converts C header files to =
pascal. Again=20
this has limiations but might</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>prove to have useful code or ideas. =
</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Once you can parse a C Header file I =
believe the=20
code generation wouldn't</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>be to difficult.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Ray Smith.</FONT></DIV>
<DIV> </DIV>
<BLOCKQUOTE=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV=20
style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
<A title=3Dtone.skoda at siol.net =
href=3D"mailto:tone.skoda at siol.net">Tone=20
Skoda</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>To:</B> <A =
title=3DEUforum at topica.com=20
href=3D"mailto:EUforum at topica.com">EUforum</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Monday, April 16, 2001 =
5:26=20
AM</DIV>
<DIV style=3D"FONT: 10pt arial"><B>Subject:</B> automatic dll =
wrapping</DIV><PRE></PRE><PRE>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
Maximize your email efficiency with My Topica. Searchable
archives, vacation options, and more. Sign up now at
<A =3D"=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</PRE">
<DIV><FONT face=3DArial size=3D2>I was thinking that it could be =
possible to make=20
a program which would automatically wrap a dll. It would have .dll and =
.h file=20
for input, or maybe just .h file, and output would be one big .ew =
file. It=20
could/should also handle strings and structures. My WinMania =
library=20
could be automatically generated without any work (hand editing)=20
with such program. This is definiteley something =
that will/should=20
probalby be done sometimes for Eu. euAllegro library could also=20
be generated with such program. It would be like C to =
Eu=20
translator, but only for functions in dlls. This would be a =
challenging task=20
for someone to do. It would basically be a parser (very powerful, like =
a C=20
compiler almost) for .h files.</FONT><FONT face=3DArial size=3D2> Then =
it would be=20
using C libraries in Euphoria very easy, you would just generate=20
appropriate .ew file for a dll and you could use it like in C but with =
Euphoria language. Anybody knows of any limits why this couldn't be =
done,=20
anybody thought of this =
before?</FONT></DIV><PRE>=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
<A =
=3D"=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
" =
<PRE>=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
<A =
=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
------=_NextPart_000_0042_01C0C59D.138FC360--
4. Re: automatic dll wrapping
Tone Skoda wrote:
> I was thinking that it could be possible to make
> a program which would automatically wrap a dll.
Yes, this can be done. at one point, I had written module for SWIG (Simple
Wrapper Interface Generator) that would automatically generate DLLs for C
and C++ modules. It wasn't very good at handling custom datatypes, though -
it treated them all as pointers.
A better approach than trying to be able to parse any C/C++ file would to
simplify the grammar that the program accepted. For example, you could
restrict it to only being able to read function prototypes, and simple
structs. It's a lot easier to clean up the code by hand than it is to make
the code smarter, and the result it the same. It's a lot easier to maintain
the code, too.
I had written another wrapper generator along the lines that I just
described, but I seem to have misplaced it. I'll have to dig it up, because
even thought it was incomplete, it did a nice job of wrapping inherited C++
methods...
-- David Cuny
5. Re: automatic dll wrapping
This is a multi-part message in MIME format.
------=_NextPart_000_00CB_01C0C5EA.1C5DC3A0
charset="iso-8859-2"
Yes, I'm interested in your code.
I wrote 20 kb .h parser yesterday, no testing yet, I think i'll be =
debugging it 3 weeks :), and I think I got to deep, because I also =
consider #ifdef and macros and here evaluating of expressions is needed.
I want to acomplish that there wouldn't be any hand editing needed of =
.ew files translated.
----- Original Message -----=20
From: Mark Brown=20
To: EUforum=20
Sent: Sunday, April 15, 2001 3:43 AM
Subject: Re: automatic dll wrapping
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
"Before myTopica, I was buried in an avalanche of email.
Now, thanks to this free solution, I am on top of my inbox."
Get rescued at
Hi Tone.
=20
I use a parser I created with help from code by Dave Cuny,
Buddy Hyleberg and others to do a fair bit of the work to wrap=20
Morfit.
=20
It creates an include which wraps all the "define_c_func",
"define_c_proc" stuff and also creates another include with
empty functions (uses function names etc) that are the
actual wrapper functions. These have to be completed by
hand (eg peeks, pokes, atom_to_floats etc). It also "imports"
all completed functions from the previous Morfit version.
=20
It isn't very good code (my parts, not the bits I ripped off
others!) but I will send it to you if you like. The Morfit .h file
also seems to be pretty simple to parse compared to others
I have seen.
Good luck with it.
Mark=20
----- Original Message -----=20
From: Ray Smith=20
To: EUforum=20
Sent: Sunday, April 15, 2001 9:53 AM
Subject: Re: automatic dll wrapping
=20
Look in the archives for SWIG/Euphoria by the great David Cuny!!!
SWIG is an Open Source project that is used to wrap DLL's for
a number of scripting languages (Perl and Python being the Primary =
ones??).
SWIG/Euphoria is/was David Cuny's attempt for a Euphoria version. =20
I can't remember how good it was ... it worked at some level for =
sure.
It would be a good starting point though and I'm sure full of =
information
for anyone attempting similar things.
I also attempted my own version when I was wrapping Allegro without =
sucess.
=20
If you know pascal the FreePascal people have a H2PAS program which
converts C header files to pascal. Again this has limiations but =
might
prove to have useful code or ideas.=20
Once you can parse a C Header file I believe the code generation =
wouldn't
be to difficult.
Ray Smith.
----- Original Message -----=20
From: Tone Skoda=20
To: EUforum=20
Sent: Monday, April 16, 2001 5:26 AM
Subject: automatic dll wrapping
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Maximize your email efficiency with My Topica. Searchable
archives, vacation options, and more. Sign up now at
I was thinking that it could be possible to make=20
a program which would automatically wrap a dll. It would have .dll and =
.h file=20
for input, or maybe just .h file, and output would be one big .ew =
file. It=20
could/should also handle strings and structures. My WinMania library=20
could be automatically generated without any work (hand editing)=20
with such program. This is definiteley something that will/should=20
probalby be done sometimes for Eu. euAllegro library could also=20
be generated with such program. It would be like C to Eu=20
translator, but only for functions in dlls. This would be a =
challenging task=20
for someone to do. It would basically be a parser (very powerful, like =
a C=20
compiler almost) for .h files. Then it would be=20
using C libraries in Euphoria very easy, you would just generate=20
appropriate .ew file for a dll and you could use it like in C but with =
Euphoria language. Anybody knows of any limits why this couldn't be =
done,=20
anybody thought of this =
before?=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
------=_NextPart_000_00CB_01C0C5EA.1C5DC3A0
Content-Type: text/html;
charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-2" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2614.3401" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Yes, I'm interested in your =
code.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>I wrote 20 kb .h parser yesterday, no =
testing yet,=20
I think i'll be debugging it 3 weeks :), and I think I got to deep, =
because I=20
also consider #ifdef and macros and here evaluating of expressions =
is=20
needed.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>I want to acomplish that there wouldn't =
be any hand=20
editing needed of .ew files translated.</FONT></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>----- Original Message ----- </DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: =
0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
<DIV=20
style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
<A href=3D"mailto:mabrown at SENET.COM.AU" =
title=3Dmabrown at SENET.COM.AU>Mark=20
Brown</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>To:</B> <A =
href=3D"mailto:EUforum at topica.com"=20
title=3DEUforum at topica.com>EUforum</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Sunday, April 15, 2001 =
3:43=20
AM</DIV>
<DIV style=3D"FONT: 10pt arial"><B>Subject:</B> Re: automatic dll =
wrapping</DIV>
</PRE><PRE>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
"Before myTopica, I was buried in an avalanche of email.
Now, thanks to this free solution, I am on top of my inbox."
Get rescued at
<A =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</PRE>
<DIV><FONT face=3DArial size=3D2>Hi Tone.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>I use a parser I created with help =
from code by=20
Dave Cuny,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Buddy Hyleberg </FONT><FONT =
face=3DArial=20
size=3D2>and others to do a fair bit of the work to wrap =
</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Morfit.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>It creates an include which wraps all =
the=20
"define_c_func",</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>"define_c_proc" stuff and also =
creates another=20
include with</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>empty functions (uses function names =
etc) that=20
are the</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>actual wrapper functions. These have =
to be=20
completed by</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>hand (eg peeks, pokes, atom_to_floats =
etc). It=20
also "imports"</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>all completed functions from the =
previous=20
Morfit version.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>It isn't very good code =
(my parts, not the=20
bits I ripped off</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>others!) but I will send it to you if =
you like.=20
The Morfit .h file</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>also seems to be pretty simple to =
parse compared=20
to others</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>I have seen.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Good luck with it.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Mark</FONT> </DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; =
MARGIN-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
<DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV=20
style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
<A href=3D"mailto:smithr at ix.net.au" title=3Dsmithr at ix.net.au>Ray =
Smith</A>=20
</DIV>
<DIV style=3D"FONT: 10pt arial"><B>To:</B> <A =
href=3D"mailto:EUforum at topica.com"=20
title=3DEUforum at topica.com>EUforum</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Sunday, April 15, 2001 =
9:53=20
AM</DIV>
<DIV style=3D"FONT: 10pt arial"><B>Subject:</B> Re: automatic dll=20
wrapping</DIV><A <DIV><FONT face=3DArial size=3D2></FONT>
<DIV></DIV>
<DIV><FONT face=3DArial size=3D2>Look in the archives for =
SWIG/Euphoria by the=20
great David Cuny!!!</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>SWIG is an Open Source project that =
is used to=20
wrap DLL's for</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>a number of scripting languages =
(Perl and=20
Python being the Primary ones??).</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>SWIG/Euphoria is/was David Cuny's =
attempt for a=20
Euphoria version. </FONT></DIV>
<DIV><FONT face=3DArial size=3D2>I can't remember how good it was =
... it worked=20
at some level for sure.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>It would be a good starting point =
though and=20
I'm sure full of information</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>for anyone attempting similar=20
things.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>I also attempted my own version =
when I was=20
wrapping </FONT><FONT face=3DArial size=3D2>Allegro without =
sucess.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>If you know pascal the FreePascal =
people have a=20
H2PAS program which</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>converts C header files to =
pascal. Again=20
this has limiations but might</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>prove to have useful code or ideas. =
</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Once you can parse a C Header file =
I believe=20
the code generation wouldn't</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>be to difficult.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>Ray Smith.</FONT></DIV>
<DIV> </DIV>
<BLOCKQUOTE=20
style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; =
MARGIN-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
<DIV style=3D"FONT: 10pt arial">----- Original Message ----- =
</DIV>
<DIV=20
style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
<A href=3D"mailto:tone.skoda at siol.net" =
title=3Dtone.skoda at siol.net>Tone=20
Skoda</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>To:</B> <A=20
href=3D"mailto:EUforum at topica.com" =
title=3DEUforum at topica.com>EUforum</A>=20
</DIV>
<DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Monday, April 16, =
2001 5:26=20
AM</DIV>
<DIV style=3D"FONT: 10pt arial"><B>Subject:</B> automatic dll =
wrapping</DIV><PRE></PRE><PRE>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
Maximize your email efficiency with My Topica. Searchable
archives, vacation options, and more. Sign up now at
<A =3D"=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</PRE">
<DIV><FONT face=3DArial size=3D2>I was thinking that it could be =
possible to make=20
a program which would automatically wrap a dll. It would have .dll and =
.h file=20
for input, or maybe just .h file, and output would be one big .ew =
file. It=20
could/should also handle strings and structures. My WinMania =
library=20
could be automatically generated without any work (hand editing)=20
with such program. This is definiteley something =
that will/should=20
probalby be done sometimes for Eu. euAllegro library could also=20
be generated with such program. It would be like C to =
Eu=20
translator, but only for functions in dlls. This would be a =
challenging task=20
for someone to do. It would basically be a parser (very powerful, like =
a C=20
compiler almost) for .h files.</FONT><FONT face=3DArial size=3D2> Then =
it would be=20
using C libraries in Euphoria very easy, you would just generate=20
appropriate .ew file for a dll and you could use it like in C but with =
Euphoria language. Anybody knows of any limits why this couldn't be =
done,=20
anybody thought of this =
before?</FONT></DIV><PRE>=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
<A =
=3D"=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
" =
<PRE>=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
<A =
=3D"=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
" =
<PRE>=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
<A =
=3D=3D^=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
------=_NextPart_000_00CB_01C0C5EA.1C5DC3A0--