Linux Software Map: PRECCX

  • 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.
  • (240KB)
  • Keywords: Compiler-Compiler ANSI C synthetic parameterized attribute grammar.
  • Author: (Peter T. Breuer)
  • Maintained-by: (Peter T. Breuer)
  • Platforms: ANSI C compiler (gcc preferred).
  • Copying-policy: GPL with GPLlib. Commercial maintenance licences available.
Note: Not all entries contain correct, complete filenames or URLs. FTP sites often refuse connections due to excessive traffic. If you have difficulty with the provided links to individual files, try the first link, which is usually to a directory or web site for the program as a whole.
Up to Linux Software Map