gll-0.2.0.2: gll.cabal
-- Initial haskell-gll.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
-- The name of the package.
name: gll
version: 0.2.0.2
synopsis: GLL parser with simple combinator interface
license: BSD3
license-file: LICENSE
author: L. Thomas van Binsbergen
maintainer: ltvanbinsbergen@acm.org
category: Compilers
build-type: Simple
cabal-version: >=1.8
tested-with: GHC == 7.6.3
description:
GLL is a parser combinator library for writing generalised parsers.
The parsers can correspond to arbitrary context-free grammar, accepting
both non-determinism and (left-) recursion.
The underlying parsing algorithm is GLL (Scott and Johnstone 2013).
.
The library provides an interface in Control.Applicative style (although no
instance of Applicative is given).
Users can add arbitrary semantic to the parser.
.
There are 4 top-level functions: parse, parseString, parseWithOptions
and parseStringWithOptions. They all return a list of semantic results,
one for each derivation. In the case that infinite derivations are possible
only 'good parse trees' are accepted (Ridge 2014).
.
Function parse relies on a builtin Token datatype. User-defined token-types
are currently not supported. parseString enables parsing character strings.
The user is granted GLL.Combinators.Options to specify certain disambiguation
rules.
.
GLL.Combinators.MemInterface is a memoised version of the library.
Parsers are no longer pure functions and must be built inside the IO monad,
providing fresh memo-tables to each memo'ed non-terminal.
.
See UnitTests and MemTests for examples of using both version of
the library.
library
hs-source-dirs : src,tests/interface
build-depends : base >=4.5 && <= 4.8.0.0
, containers >= 0.4
, array
, TypeCompose
exposed-modules : GLL.Combinators.Interface
, GLL.Combinators.MemInterface
, GLL.Combinators.Options
, GLL.Combinators.Memoisation
, UnitTests
, MemTests
other-modules : GLL.Types.Abstract
, GLL.Types.Grammar
, GLL.Parser
, GLL.Common
extensions : TypeOperators, FlexibleInstances, ScopedTypeVariables, TypeSynonymInstances