| Frown — an LALR(k) parser generator for Haskell, Version 0.6, 2005. Available from http://www.informatik.uni-bonn.de/~ralf/frown (2009) | |||||||||||||||||
Abstract | |||||||||||||||||
| Frown is an LALR(k) parser generator for Haskell 98 written in Haskell 98. Its salient features are: • The generated parsers are time and space efficient. On the downside, the parsers are quite large. • Frown generates four different types of parsers. As a common characteristic, the parsers are genuinely functional (ie ‘table-free’); the states of the underlying LR automaton are encoded as mutually recursive functions. Three output formats use a typed stack representation, one format due to Ross Paterson (code=stackless) works even without a stack. • Encoding states as functions means that each state can be treated individually as opposed to a table driven-approach, which necessitates a uniform treatment of states. For instance, look-ahead is only used when necessary to resolve conflicts. • Frown comes with debugging and tracing facilities; the standard output format due to Doaitse Swierstra (code=standard) may be useful for teaching LR parsing. • Common grammatical patterns such as repetition of symbols can be captured using rule | |||||||||||||||||
Publication details | |||||||||||||||||
| |||||||||||||||||