cronburg / antlr-haskell

A language parsing quasiquoter for Haskell based heavily on ANTLR4.
Other
49 stars 7 forks source link
antlr haskell

antlr-haskell

A Haskell implementation of ANTLR.

In implementing ANTLR we referenced the behavior of the original Java version (ANTLR4): The definitive ANTLR4 Reference. However we have taken much liberty in the design of this library compared to the workflow of the original Java version. In particular in implementing ANTLR for Haskell we have followed the following principles:

More info can be found here: https://www.cronburg.com/2018/antlr-haskell-project/

Build instructions

The library can be built with:

$ stack build # stack version 2.3.3
$ stack test :simple

Or with cabal (tested on 3.0.0.0) like so:

$ hpack
$ cabal update
$ cabal configure
$ cabal new-build
$ cabal test sexpression
...
Test suite sexpression: RUNNING...
Test suite sexpression: PASS
Test suite logged to:
/antlr-haskell/dist-newstyle/build/x86_64-linux/ghc-8.6.5/antlr-haskell-0.1.0.1/t/sexpression/test/antlr-haskell-0.1.0.1-sexpression.log
1 of 1 test suites (1 of 1 test cases) passed.

Here's a good one to run when making changes to the library, and you're unsure of what may become affected by those changes:

stack test :simple :atn :ll :lr :sexpression :allstar :c

And then compare the results with that of this upstream branch. Some of the GLR features (incremental and partial tokenization, notably) are still experimental, and so there are known test cases which currently fail.

Version History