<tool> (Pre-C-Compiler eXtended) An infinite-lookahead compiler-compiler by Peter Breuer <firstname.lastname@example.org> for context dependent grammars. PRECCX generates ANSI C. Specification scripts are in very EBNF with inherited attributes and synthetic attributes allowed. Scripts can be compiled in separate modules and linked later. Meta-production rules are allowed. Grammars can be essentially LL(oo) with optimisations. A converter for yacc scripts is available.
Versions 1.xx were known as "PRECC" and only had unbounded lookahead. The 2.xx series added the "X" for "extended" and featured higher order parameterisation (inherited attributes).
Version 2.42 integrates inherited and synthesized attributes by using a "monadic" model for parsing. You can now synthsize attributes during the pass and inherit them in the remainder, e.g.
@ foo = bar\x gum(x)synthesises an x in bar and passes it down into gum as a parameter. Useful for @ what = ?\x did_you_say(x), for example. It now compiles into C instead of running an interpreter at parse-time.
["The PRECC Compiler-Compiler" by P.T. Breuer and J.P. Bowen. In E. Davies and A. Findlay (eds.), Proc. UKUUG/SUKUG Joint New Year 1993 Conference, St. Cross Centre, Oxford, UK, 6-8 January 1993, ISBN 1 873611 06 4 (UKUUG), 0 9520700 0 6 (SUKUG) UKUUG/SUKUG Secretariat, Owles Hall, Buntingford, Herts SG9 9PL, UK, pp 167-182, 1993].