grm: grm grammar converter

[ bsd3, development, library, program ] [ Propose Tags ]

Grm takes a grammar specification and generates Haskell bindings. Given a grammar the tool produces an abstract syntax implementation, a Happy parser generator file, and a pretty-printer.

[Skip to Readme]
Versions [RSS] [faq] 0.1.0, 0.1.1
Dependencies base (<5), Cabal, cmdargs, directory, filepath, parsec, process, syb, wl-pprint [details]
License BSD-3-Clause
Copyright Brett Letner 2011-2012
Author Brett Letner <>
Maintainer Brett Letner <>
Category Development
Source repo head: git clone git://
Uploaded by BrettLetner at 2012-03-28T12:27:01Z
Distributions NixOS:0.1.1
Executables grm
Downloads 1881 total (4 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]




Maintainer's Corner

For package maintainers and hackage trustees


Readme for grm-0.1.0

[back to package description]
Introducing the grm compiler construction tool.  Grm takes a grammar
specification and generates Haskell bindings.  Grm is essentially a
simplified bnfc which only generates Haskell (bnfc

Given a grammar the tool produces:
  - an abstract syntax implementation
  - a Happy parser generator file
  - a pretty-printer

Grm also has some library code for lexing and misc. language
development tasks (e.g. unique identifiers).

I use grm heavily in my pec language
compiler. ( and on hackage).  You can
check out pec for example grm usage.

  - type 'make'
  - resolve all hackage dependencies
  - type 'make' again

You can download and install grm via cabal or access the git
repository on github (

Any feedback on the design and/or implementation of grm would be
greatly appreciated :)

brettletner at gmail dot com