Hi All,
I have been working on NYACC for over 10 years now. I started with a
parser-generator
(lalr) and progressed to C parser (parse-c99) and then FFI helper
(ffi-helper). Lately I have
replaced the backend for the ffi-helper with a custom bytevector layer
(cdata). I have wondered
if I should split up this package. If so, it would likely be into the
following:
1) nyacc : the parser generator; no other guile-external dependencies
2) guile-cdata: bytevector cover for C data, with arch-info; no other
guile-external dependencies
3) guile-cparser : C parser, dependent on (1) nyacc and arch-info from (2)
4) guile-ffi-helper: C code to guile FFI generator
Thoughts? I'm looking for feedback from those who use any of the above.
FYI, regarding the FFI helper, I have inserted a level of indirection so
that the FFI helper
can generate code for not only cdata, but also scheme-bytestructures and
bstructs, given
the plugins from github.com/mwette/guile-fhbe (ffi helper back-end).
I'm hoping I will not
have to provide support for the alternate backends.
(See dev-3.02 branch in github.com/mwette/nyacc for work-in-progress.)
Matt