[prev in list] [next in list] [prev in thread] [next in thread] 

List:       haskell
Subject:    Ratatosk - a parser generator and scanner generator for Gofer
From:       torbenm () dk ! diku
Date:       1993-08-05 12:21:57
Message-ID: 9308051221.AA24397 () animal ! cs ! chalmers ! se
[Download RAW message or body]

From: torbenm@dk.diku
Subject: Ratatosk - a parser generator and scanner generator for Gofer
Date: Thu, 5 Aug 93 14:14:39 +0200
To: haskell@EDU.YALE.CS
Old-Resent-From: haskell-request@dcs.gla.ac.uk
Approved: haskell@dcs.gla.ac.uk
Resent-Date:  Thu, 5 Aug 1993 13:15:04 +0100
Resent-From: kh
Resent-To: haskell-list-dist




       _/_/_/               _/           _/                  _/
      _/    _/             _/           _/                  _/
     _/    _/           _/_/_/       _/_/_/                _/
    _/_/_/       _/_/_/  _/   _/_/_/  _/   _/_/    _/_/   _/  _/
   _/    _/    _/   _/  _/  _/   _/  _/  _/   _/ _/      _/ _/
  _/     _/   _/   _/  _/  _/   _/  _/  _/   _/  _/_/   _/_/
 _/      _/  _/   _/  _/  _/   _/  _/  _/   _/     _/  _/  _/
_/       _/   _/_/_/  _/   _/_/_/  _/   _/_/   _/_/   _/    _/


	A Parser Generator and Scanner Generator for Gofer

		Torben Mogensen (torbenm@diku.dk)

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 (torbenm@diku.dk)




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic