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 V3.01.0, from V3.00.2
* nyacc/parse.scm(make-lalr-parser): Added option to provide user-hook
  to intercept state transition.
* nyacc/lang/c99/parse.scm: removed, back to using nyacc/parse.scm now
* nyacc/lang/sx-util.scm(sx-match): allow '() as a pattern
* lang/nx-util.scm: major rework for symbol table handling.
* nx-mlang: Matured the parser, compiler and pretty printer.
  + It now can parse comma-less matrix rows with space constraint.
* nx-javascript:
  + Removed `insert-semi' and `no-semi-insertion' (NSI) hacks in
    javascript parser; the nyacc parser has `ignore-if-unexpected'.
  + Updated compiler to use nx-util updates.
* Minor work on example javascript, julia and lua parsers.
* Minor work on lalr.scm output: add index to action element comment.

updates for V3.00.2, from V3.00.1
* munge.scm(udict-enum->ddict): make robust to typeof- (gobject case)
* sx-util.scm(sxm-sexp): make sure value is pair before calling car
* lalr.scm: update for generating tag-based parsers
* examples/impl/python: first shot at python-based parser help
* nx-mlang/mach.scm: update for space for row element separator


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.

Reply via email to