PRECCX

Pre-C-Compiler eXtended.

FTP

An infinite-lookahead compiler-compiler by Peter Breuer <ptb@comlab.ox.ac.uk> for context dependent grammars. It 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 together later. Meta-production rules are allowed. The technology is 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 finally achieved full integration between inherited and synthesized attributes by abandoning the yacc-style attribute stack and 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.

Version 2.42 runs under Unix and MS-DOS.

Home

FTP

E-mail: Peter Breuer <ptb@comlab.ox.ac.uk>, Jonathan Bowen <bowen@comlab.ox.ac.uk>.

["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].

(24 Jan 1995)