Name: BNFC-meta version: 0.4.0.2 cabal-Version: >= 1.6 build-type: Simple license: GPL-2 license-file: LICENSE author: Jonas Duregård maintainer: Jonas Duregård (jonas.duregard@chalmers.se) category: Development synopsis: Deriving Parsers and Quasi-Quoters from BNF Grammars description: This package provides a very simple way of defining a compiler front-end for a language by embedding a BNF grammar directly into a Haskell source file. Specifically, given a quasi-quoted LBNF grammar (as used by the BNF Converter) it generates (using Template Haskell) a LALR parser and pretty pretty printer for the language. The parser is then used to automatically define a quasi-quoter for the defined language so it can also be seamlessly embedded in Haskell source code. With a simple addition to the gramwmar, the user can define a universal syntax for anti-quoting. This means that any grammar non-terminal can be replaced by a quoted Haskell expression of the appropriate type. A few example languages are included in the source tarball. . The LBNF grammar formalism is described thoroughly in the BNF Converter documentation: . This library and the additions it makes to LBNF is described in a 2011 Haskell Symposium paper titled \"Embedded Parser Generators\": extra-source-files: examples/jll/JavaletteLight.hs examples/jll/UseJll.hs examples/typesafe/Example.hs examples/typesafe/Typesafe.hs Bootstrap/Bootstrap.hs Library Build-Depends: base>=4.2&&<5 , array>=0.4&&<0.6 , template-haskell >=2.4&&<2.10 , haskell-src-meta >= 0.5 && < 1.0 , happy-meta >= 0.2.0.4 && < 0.3 , alex-meta >= 0.3.0.5 && < 0.4 , syb >= 0.2 && <1.0 Exposed-modules: Language.LBNF , Language.LBNF.Runtime , Language.LBNF.Compiletime , Language.LBNF.Grammar Other-modules: Language.LBNF.CF , Language.LBNF.CFtoAbstract , Language.LBNF.CFtoAlex2 , Language.LBNF.CFtoHappy , Language.LBNF.CFtoLayout , Language.LBNF.CFtoPrinter , Language.LBNF.CFtoQQ , Language.LBNF.GetCF , Language.LBNF.TypeChecker , Language.LBNF.Utils , Language.Haskell.TH.Hide