Hi, Overall, I concur with what others have already said. Just adding my two cents...
Luis Araujo <[EMAIL PROTECTED]> writes: > -- What is GCP? > > GCP as its name stands, it is a parser for ANSI C code written on Scheme > to be included into Guile. > > The main idea is to represent in a structured and modular way all the > components > of a C source file into Guile. > > This tool would allow to easily parser C headers files and generate > automatically Guile interfaces for their libraries among other things. Obviously, a parser alone is not going to help much towards this goal: interfacing Scheme code with C libraries is a job on its own (see G-Wrap, Swig, etc.), and parsing headers to help automate things is probably an optional part of such tools (G-Wrap does not support it at all whereas Swig relies on it---the downside is that Swig-generated bindings usually have to be hand-tweaked to provide a nicer Scheme API). > c-parser.scm: Surely, you would want to use `lalr-scm' [0], which is available in Guile-Lib [1] for that purpose. > c-lexer.scm: Likewise, SILex [2] would allow you to generate the lexer, in a way similar to Flex. > -- Community benefits. > > Scheme is a small programming language , with a very loyal community > who has been able to deploy Scheme through many fields. > > Guile is a particular Scheme project intended to make available such a > language as an embeddable library into other applications, mainly > coded on C. > > Therefore, being able to parse and access C code from Scheme/Guile itself, > and handling such a code like any other Scheme object would clearly > benefit the community opening many new possibilities. > > For example, creating Guile bindings through a foreign function generator > using the parser on headers for popular C libraries and applications > would be plain easy. Again, I'm not convinced that such a tool would suffice to make FFI generation "plain easy". Besides, others have already pointed out similar projects/tools such as `eval-c'. While apparently somewhat different, the (old) `ctax' project [3] might also be of interest. Thanks, Ludovic. [0] http://www.iro.umontreal.ca/~boucherd/Lalr/documentation/lalr.html [1] http://home.gna.org/guile-lib/doc/ref/text.parse-lalr/ [2] http://www.iro.umontreal.ca/~dube/ [3] http://cvs.savannah.gnu.org/viewvc/guile/guile/guile-rgx-ctax/
