NYACC, for Not Yet Another Compiler Compiler, is set of guile modules for
generating parsers and lexical analyzers. It also provides sample parsers
and pretty-printers using SXML trees as an intermediate representation.
It provides a decent C parser and a `FFI Helper' tool to help create
Guile Scheme bindings for C-based libraries.
It provides (partially implemented) compilers based on above mentioned
parsers to allow execution with Guile as extension languages.
Updates for 3.02.0 from 3.01.1
* Many thanks to #lechner for persistence in testing new commits!
* Updated ffi-helper to allow other backends (e.g, bstruct,
bytestructures). See github.com/mwette/guile-fhbe. This was
accomplished by adding a layer of indirection for low-level
type construction.
+ Compile time for gtk2.ffi is 5% longer.
+ Compiled ffi modules include case-backend syntax form.
(See ffi/cairo.ffi for an example use case.)
* Moved ffi-help-cd.scm back to ffi-help.cd, like for v1.0.
* In cdata, removed support for previously deprecated types (e.g.,
"signed long int") in preference for canonical short names (e.g.,
"long"), as parse-c99 does not produce them.
* Merged "powerpc64le" machine arch (from #gwitmond) into
arch-info.
* Added s390x machine arch (thanks #rlb) into arch-info. issue#27
* In cdata, exposed procedure make-cdata/* which will create
an object from a pointer.
* The cdata user guide has been reviewed and expanded.
* cdata-ref now returns scheme array and struct values as Guile
objects (array and alist). To get cdata objects, use cdata-sel.
* cdata-set! now accepts scheme arrays (and vectors) for carray and
alists for cstructs and cunions.
* Fixes issue#22: buggy cdata-ref/set! with anonymous
struct/unions.
* Fixes issue#24: c99 parsing empty-structs (struct { };).
* Fixes issue#25: attribute arguments w/ math expressions.
* Fixes issue#26: __u32 not found => major bug in process-decls
0cc90f6
* Fixes issue#49: use asm-based link name for foreign-pointers
* Worked more on the "mlang" language example parser and analyzer.
* In define-ffi-module identifier ffi-arch is available march.
NYACC maturity is production/stable level.
NYACC is free software; the full source distribution is available through
* the tarball repository:
https://github.com/mwette/nyacc/releases
pre 3.00:
https://download.savannah.gnu.org/releases/nyacc
* the git repository:
git://github.com:mwette/nyacc.git
pre 3.00:
git://git.savannah.nongnu.org/nyacc.git
home page, project page and user's guides:
https://github.com/mwette/nyacc/wiki
Report bugs:
https://github.com/mwette/nyacc/issues
Copyright (C) 2017-2025 Matthew Wette
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without any warranty.