A new version (0.17.4) of the Compiler Toolkit - a collection of modules supporting the development of compiler-like applications in Haskell 98 - is now available from http://www.score.is.tsukuba.ac.jp/~chak/ctk/ The main addition are modules providing combinators for * self-optimizing, deterministic lexical analyzers and * self-optimizing, deterministic LL(1) parsers. As far as I know, the approach taken for the lexical analyzers is new, whereas the parsers are a reimplementation of Swierstra & Duponcheel's ideas. A lexical analyzer for C header files implemented with the library, achieves about 4000 tokens/sec when reading a 233MB output from cpp on a 200MHz PentiumPro running Linux (using GHC 4.02 and *no* special optimizations, such as, fast strings or so). The code is tested on GHC 3.02 and GHC 4.02, but shouldn't be difficult to use on other Haskell 1.4 or Haskell 98 systems. The parser combinators (and only those) require non-standard support for existentially quantified types (which I think are supported on all systems in one way or the other). Any comments are highly appreciated, Manuel
