I am going to play with the idea we can embed C directly in Felix as so:
extern "C" typedef int fred;
At present, the grammar does nothing other than a syntax check.
The idea is: if it's a declaration in C, it declares a C entity to Felix.
If it's a definition in C, Felix calculates its interface, and also emits it.
For example if you write:
extern "C" long f(int);
it is the same as:
fun f: int --> long = "f($1)";
But if you write
extern "C" long f(int a) { return a + 1; }
then it is the same as:
fun f: int --> long = "f($1)";
body "long f(int a) { return a + 1; }";
The purpose of this feature is to make interfacing to C easier,
NOT non-existant, that is, you can't just plug in a C file and
expect it to work. Macros aren't allowed. GNU or MS extensions
aren't allowed. Not all weird C will be allowed. We'll start with
a nice subset of C89.
[Hmm now I have to try to find a C grammar somewhere .. anyone know
where I can find one? My copy of the C standard is lost .. :]
--
john skaller
[email protected]
------------------------------------------------------------------------------
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language