pacc 0.2 (ashigaru) =================== Written by Tobold Jayne Goodwin Copyright (C) 2012 - 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. WARNING: Beta release. There are no known major deficiencies, but several minor ones. Any interfaces are subject to change in future releases, and backwards compatibility will not be the highest priority. pacc is intended to become the parser-generator of choice for C for the early- to mid-21st century: widely portable, industrial strength, blazingly fast, parsimonious, and still elegant. So head on over to the INSTALL file, and found out how to build yourself a small slice of computer science history. For more information, visit https://paccrat.org/ Toby Kilmarnock, UK 2015-07-31 This release is dedicated to my parents, Geoffrey Hamilton Goodwin and Sandra Irene Goodwin, who celebrate their 50th wedding anniversary today. Thanks for everything, Mum and Dad! Change Log ---------- Were in the pacc-0.2 (ashigaru) release: - fix realloc bug in ``_pacc_coords()`` - quotation mark (") in character classes no longer causes indigestion - intermediate result cells no longer move, so ``ref_t`` values in guards work reliably - fix a bug in the code that creates feeding grammars - value inheritance, so a rule like ``S ← t:That { t } / ...`` can instead be written ``S ← That / ...`` - ``pacc_destroy()`` now frees all memory - fixed a bug where malloc size argument was not scaled (thanks glibc / valgrind!) - ``rule not reached`` is now a warning, not a fatal error - whitespace in types is no longer significant Were in the pacc-0.1 (wōkòu) release: - support all C99 character escapes - UTF-8 support in coordinates - memoize ``_pacc_coords()`` - bring **pacc0.c** up to date (character classes, right anchoring) - UTF-8 support in character classes - refactor Unicode reading code in ``any`` and ``cclass`` matchers - make ``→ 5`` work - warn about bad character classes - ``pacc_error()`` now returns an error string, instead of outputting it - there is a new ``pacc_pos()`` function - check that all rules are reached - ``YY_input()`` no longer takes a name parameter (but ``YY_wrap()`` does) - ``YY_error()`` returns a string that doesn't include the name - detect rules being redefined - expose ability to alter prefix - macro and variable to enable tracing - move all names into the ``pacc_`` / ``_pacc_`` namespaces - feed points are now marked with ``$``; the ``-r`` option is gone - **pacc0.c** is now built from **pacc.pacc** - detect erroneous rebinding of names - Put ``]`` first in a character class to match it; disallow empty class - basic documentation Were in the pacc-0.0 (ronin) release: - minimal documentation - UTF-8 support in **any** matchers - anchor all grammars left and right - complete command line interface - implement --feed / partialization (this is my unique selling point) - scoping -- names in pacc grammars are supposed to scope statically over sequences, but that clearly isn't the case at the moment, otherwise ``test/pacc/scope1.pacc`` would compile! - add #line directives - detect left recursion - one instance of each type per union - dynamically allocate everything