_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/ _/_/_/ _/ _/_/_/ _/_/_/ _/ _/_/_/ _/ _/_/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/_/ _/ _/_/_/ _/ _/_/ _/_/ _/ _/ A Parser Generator and Scanner Generator for Gofer Torben Mogensen ([EMAIL PROTECTED]) Announcing Ratatosk version 0.1. Ratatosk started as an exercise to learn to use Gofer, but grew to be a usable system for generating parsers and scanners to use with Gofer programs. The parser generator generates SLR parsers from a context free syntax, and allows semantic "actions" to be used. The generated parsers will backtrack over shift/reduce and reduce/reduce conflicts, so non-SLR languages can be parsed, at the cost of some extra run-time. You will, however, get warnings about any conflicts found while generating a parser. The scanner generator takes a sequence of token declarations using regular expressions and generates a DFA-based scanner suitable for use with the generated parsers. The scanners counts line numbers for error reporting. The parsers generated by Ratatosk will typically be much faster than parsers using parser combinators (20-25 times faster in some examples we have tried). However, they will also be much larger. Another problem is type-checking. The standard allocation of type variables for Gofers type checking is not large enough to type-check parsers generated by Ratatosk for medium to large grammars, so you might have to recompile Gofer with a larger allocation of type variables. The scanners generated by Ratatosk will usually compare reasonably well speed-wise with simple hand-written scanners, and very well with scanners using parser combinators. However, the scanners tend to get big and have the same problem with type variables as the generated parsers. Ratatosk is available by anonymous ftp from ftp.diku.dk in the directory pub/diku/dists, in the file Ratatosk.tar.Z. Unpack this by uncompress < Ratatosk.tar.Z | tar xvpf - which creates a directory Ratatosk, containing the system. The package contains a manual, sources for the parser generator and scanner generator and some example files, including files for bootstrapping the system. Any questions and suggestions can be emailed to Torben Mogensen ([EMAIL PROTECTED])