- Version: 2.45f
- Entered-date: 1998-12-18
- Description: PRECCX is an infinite-lookahead compiler-compiler for context-dependent attributed grammars. It uses and produces ANSI C and is plug-compatible with lex/flex lexers. Tested on numerous platforms. Compiler-compilers aren't that easy to describe! Cf. yacc or bison. This is an intermediate public release of my development code in the 2.4* line. I normally make even numbered releases (2.44 was the last) and develop on odd numbers. But in this development line I introduced a couple of major internal code shifts that I feel need exposure without the blessing of a stable release number. The bugs are being found at a low but constant rate over months of internal testing, which indicates that more exposure is required. I can't find any more. The changes since last public release at 2.44 are aimed at object orientation and fast error recovery. I packaged everything into a structure ("self") that is passed by reference in all calls. As a result multiple instances of PRECCX parsers can now exist in C or C++ code without any cross-effects. This still isn't C++ code, but it's real close. On error, PRECCX parsers now jump back down the C call stack using an internal implementation of java-style try/catch. It might help worst case behaviour. If you wonder what the advantage of PRECCX is over yacc
- is: and friends, it is: parameterized/context sensitive grammars, higher order "macros", arbitrary lookahead (yacc has 1-token lookahead), referential transparancy, ... in summary, it's just not the same technology. Substantial examples included.
- ftp://oboe.it.uc3m.es/pub/Programs
- ftp://oboe.it.uc3m.es/pub/Programs/precc-2.45f.tgz (240KB)
- Keywords: Compiler-Compiler ANSI C synthetic parameterized attribute grammar.
- Author: ptb@it.uc3m.es (Peter T. Breuer)
- Maintained-by: ptb@it.uc3m.es (Peter T. Breuer)
- http://it.uc3m.es/~ptb/cgi-bin/cvs-precc.cgi
- Platforms: ANSI C compiler (gcc preferred).
- Copying-policy: GPL with GPLlib. Commercial maintenance licences available.
Up to Linux Software Map
