packages feed

BNFC-meta-0.5: BNFC-meta.cabal

Name:	        BNFC-meta
version:        0.5
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: <http://bnfc.digitalgrammars.com/>
  .  
  This library and the additions it makes to LBNF is described in a 
  2011 Haskell Symposium paper titled \"Embedded Parser Generators\":
  <http://wiki.portal.chalmers.se/cse/pmwiki.php/FP/EmbeddedParserGenerators>

extra-source-files:
  examples/jll/JavaletteLight.hs
  examples/jll/UseJll.hs
  examples/typesafe/Example.hs
  examples/typesafe/Typesafe.hs
  Bootstrap/Bootstrap.hs

source-repository head
  type:      git
  location:  https://github.com/JonasDuregard/BNFC-meta


Library
  Build-Depends: 
    base>=4.2&&<5
    , array>=0.4&&<0.6
    , template-haskell >=2.11&&<2.12
    , 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