happy: Happy is a parser generator for Haskell

[ bsd2, development, program ] [ Propose Tags ]

Happy is a parser generator for Haskell. Given a grammar specification in BNF, Happy generates Haskell code to parse the grammar. Happy works in a similar way to the yacc tool for C.


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
bootstrap

Optimize the implementation of happy using a pre-built happy

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Candidates

Versions [RSS] 1.16, 1.17, 1.18, 1.18.1, 1.18.2, 1.18.4, 1.18.5, 1.18.6, 1.18.7, 1.18.8, 1.18.9, 1.18.10, 1.18.11, 1.19.0, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.19.5, 1.19.6, 1.19.7, 1.19.8, 1.19.9, 1.19.10, 1.19.11, 1.19.12, 1.20.0, 1.21.0 (info)
Change log ChangeLog.md
Dependencies array, base (<0), containers (>=0.4.2), mtl (>=2.2.1) [details]
License BSD-2-Clause
Copyright (c) Andy Gill, Simon Marlow
Author Andy Gill and Simon Marlow
Maintainer Simon Marlow <marlowsd@gmail.com>
Revised Revision 1 made by int_index at 2021-11-24T14:58:30Z
Category Development
Home page https://www.haskell.org/happy/
Bug tracker https://github.com/simonmar/happy/issues
Source repo head: git clone https://github.com/simonmar/happy.git
Uploaded by JohnEricson at 2021-10-20T20:45:40Z
Distributions Arch:1.20.0, Debian:1.19.12, Fedora:1.20.0, FreeBSD:1.19.5, LTSHaskell:1.20.0, NixOS:1.20.0, Stackage:1.20.0, openSUSE:1.20.0
Executables happy
Downloads 183555 total (785 in the last 30 days)
Rating 1.25 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2021-10-20 [all 1 reports]

Readme for happy-1.21.0

[back to package description]

Happy

Build Status

Happy is a parser generator for Haskell 98 (and later).

Build Instructions

Happy is normal Cabal-packaged Haskell executable, except for the fact that a pre-built Happy is required to build the full version of Happy, which is the default.

  • If you do have an existing Happy executable on the PATH or in the default installation location (~/.cabal/bin for example), do regular

    $ cabal build
    

    like with any other project.

  • If you do not have an existing Happy executable, instead do

    $ cabal build -f -bootstrap
    
  • If you install that minimial, non-bootstrapped happy

    $ cabal install -f -bootstrap
    

    you can then build normally (with the bootstrap flag enabled).

We're sorry the bootstrap process is a bit tedious right now; we hope to improve it in the future. The ideal fix would be to make cabal-installer's cycle detector to be less pessimistic, per https://github.com/haskell/cabal/issues/7189, so that the build tool dependency can be properly expressed and everything works automatically.

Documentation & Examples

Complete documentation can be found in the directory 'doc', in DocBook XML format. To format the documentation, the DocBook-Tools suite (see https://github.com/docbook/wiki/wiki/DocBookTools) provides all the bits & pieces you need. Alternatively, pre-formatted documentation is available from Happy's homepage (URL above).

The directory 'examples' contains some example parsers that use Happy.

For information on copying and distributing this program, see the file LICENSE in this directory.

Contributing & Reporting Issues

Bugs should be reported at: https://github.com/simonmar/happy/issues

Happy Parsing!

Simon.

Current Maintainers

  • Vladislav Zavialov (@int-index)

  • John Ericson (@Ericson2314)

  • Simon Marlow (@simonmar)