The BNFC-meta package
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: 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
Properties
| Versions | 0.1, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.2, 0.2.0.1, 0.2.0.2, 0.2.1, 0.2.2, 0.3, 0.3.0.1, 0.3.0.2, 0.3.0.3, 0.3.0.4, 0.3.0.5, 0.4, 0.4.0.1 |
|---|---|
| Dependencies | alex-meta (≥0.3.0.5 & <0.4), array (0.4.*), base (≥4.2 & <5), happy-meta (≥0.2.0.4 & <0.3), haskell-src-meta (≥0.5 & <1.0), syb (≥0.2 & <1.0), template-haskell (≥2.4 & <2.9) |
| License | GPL-2 |
| Author | Jonas Duregård |
| Maintainer | Jonas Duregård (jonas.duregard@chalmers.se) |
| Category | Development |
| Upload date | Tue Oct 30 09:46:15 UTC 2012 |
| Uploaded by | JonasDuregard |
| Built on | ghc-7.6 |
| Distributions | NixOS: 0.4.0.1 |
Modules
- Language
- Language.LBNF
- Language.LBNF.Compiletime
- Language.LBNF.Grammar
- Language.LBNF.Runtime
- Language.LBNF
Downloads
- BNFC-meta-0.4.0.1.tar.gz (Cabal source package)
- package description (included in the package)