homepage: ''
changelog-type: ''
hash: 12274dee38738ef7d6785374e1a0741e6e5adc52f72091dafd8e0537ce72114d
test-bench-deps: {}
maintainer: strake888@gmail.com
synopsis: LALR(k) parser generator
changelog: ''
basic-deps:
  base: <4.10
  directory: -any
all-versions:
- '0.6'
author: Ralf Hinze
latest: '0.6'
description-type: haddock
description: ''
license-name: GPL

homepage: ''
changelog-type: ''
hash: 664feddeb2cda86fe124be8fdab55f119fb9121ce186eb36cef4597f79d34bcb
test-bench-deps: {}
maintainer: strake888@gmail.com
synopsis: LALR(k) parser generator
changelog: ''
basic-deps:
  base: <4.10
  directory: -any
all-versions:
- '0.6'
- '0.6.2'
author: Ralf Hinze
latest: '0.6.2'
description-type: haddock
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.'
license-name: GPL

Update from Hackage at 2016-02-02T17:21:30+0000
Update from Hackage at 2016-02-02T17:21:30+0000
