C Header Files -> Pascal_(re)
Mon, 31 Mar 1997 23:38:13 +0200 (MET DST)
According to Sven Engelhardt:
> I agree. Though IMHO there already exist such tools. Possibly
> I will do this ... (if there aren't any parser-specialist)
I don't know any parser-specialist. (No, I am not one either.;) I also
have never seen any working converter. It would be highly welcome if
you would write one!
> Or may be there is a way to use C .h files directly by slightly
> modifiying the preprocessor. This would be a really great deal
> for guys like me that permanently update some library-version...
This would mean nothing else than to build the converter program into
GPC - making GPC understand C source in effect. I don't think this is
a good idea. The only reasonable thing I can imagine in this context
would be to write a preprocessor switch which changes the language during
the compilation, e.g.
Program FooBar;
Var
Foo: Integer;
#language C
int bar;
void setbar (void)
{
bar = foo;
}
#language Pascal
begin
Foo:= 3;
SetBar;
end.
or, when the C part is in a header file,
Program FooBar;
Var
Foo: Integer;
#language C
#include "bar.h"
#language Pascal
begin
Foo:= 3;
SetBar;
end.
... but such a thing would be *very* hard to write. If you really
must rely on C headers which change from time to time, it is probably
the most reasonable thing to write a C module which uses the header
files and exports some well-defined functions. Then you can write a
Unit which imports these functions as `external' functions and makes
them accessible for your Pascal program.
Another thing I did experiments with was a C program which includes
the header files and writes out Pascal source for all constants
defined in the header.
But all these are kludges. The best thing still will be a converter
program. What about writing it with GNU Pascal, so we will get a
real-world demo program simultaneously?
Happy hacking,
Peter
Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201]
maintainer GNU Pascal - http://home.pages.de/~gnu-pascal/ [970125]
Peter Gerwinski (peter@agnes.dida.physik.uni-essen.de)
HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada -
Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es