Name: frown Version: 0.6.2.3 License: GPL Author: Ralf Hinze Maintainer: strake888@gmail.com Synopsis: LALR(k) parser generator Description: 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, and 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 schemata. There are several predefined rule schemata. • Terminal symbols are arbitrary variable-free Haskell patterns or guards. Both terminal and nonterminal symbols may have an arbitrary number of synthesized attributes. • Frown comes with extensive documentation; several example grammars are included. Furthermore, Frown supports the use of monadic lexers, monadic semantic actions, precedences, and associativity, the generation of backtracking parsers, multiple start symbols, error reporting, and a weak form of error correction. Build-Type: Simple Cabal-Version: >=1.6 Extra-Doc-Files: Manual/Manual.lhs Manual/Manual.ps Manual/Manual.fmt Manual/Manual.htoc Manual/Manual.pdf Manual/Manual.bib Manual/Manual.ptb Manual/Manual.dvi Manual/Manual.haux Manual/Makefile Manual/polycode.fmt Manual/html/*.html Manual/html/*.gif Manual/html/*.css Manual/Pics/*.ps Manual/Pics/*.gif Manual/Examples/Makefile Manual/Examples/*.lhs Manual/Examples/*.lg Manual/Examples/*.in Manual/Examples/*.out Manual/Examples/*.session Manual/Examples/append.let Manual/auto.1 Manual/GParser2.lg QuickStart/*.lhs QuickStart/*.lg QuickStart/*.tig Extra-Source-Files: *.lg Examples/*.in Examples/*.out Examples/*.g Examples/*.lg Examples/*.lhs Examples/*.y Examples/Makefile Examples/Haskell/Lib/*.lhs Examples/Haskell/Makefile.dist Examples/Haskell/Makefile Examples/Haskell/*.lg Examples/Haskell/*.lhs Examples/Haskell/Test/*.hs Examples/Haskell/Test/*.out Examples/Haskell/Input/*.hs Examples/Haskell/Input/*.out Executable frown Build-Depends: base <4.10, directory Extensions: LambdaCase Main-Is: Main.lhs Other-Modules: Atom, Base, Case, Compact, Convert, Future, GParser2, GVStack, Generate, Grammar, Haskell, LR0, Lexer, Lexer2, Lookahead, Optimize, Options, Quote, SearchTree, Stackless, Standard, Stdenv, GetOpt, MergeSort, OrdUniqList, OrdUniqListFM, OrdUniqListSet, Prettier, Uniq Hs-Source-Dirs: .,./Lib