The BNFC-meta package

[Tags:gpl, library]

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 grammar, 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":


Versions 0.1,,,, 0.2,,, 0.2.1, 0.2.2, 0.3,,,,,, 0.4,,,
Dependencies alex-meta (>= && <0.4), array (==0.4.*), base (>=4.2 && <5), happy-meta (>= && <0.3), haskell-src-meta (>=0.5 && <1.0), syb (>=0.2 && <1.0), template-haskell (>=2.4 && <2.9) [details]
License GPL-2
Author Jonas Duregård
Maintainer Jonas Duregård (
Category Development
Uploaded Thu Oct 11 11:08:17 UTC 2012 by JonasDuregard
Distributions NixOS:
Downloads 5758 total (31 in the last 30 days)
0 []
Status Docs not available [build log]
Successful builds reported [all 7 reports]


  • Language
    • Language.LBNF
      • Language.LBNF.Compiletime
      • Language.LBNF.Grammar
      • Language.LBNF.Runtime


Maintainer's Corner

For package maintainers and hackage trustees