Industrial-strength monadic parser combinator library
Go to file
mrkkrp dedbe7a897 fix regression in ‘setErrorMessage’, add tests
New tests shows that I had wrong assumption about workings of this
particular function. This is not a problem, though, complete test-suite
will eliminate this sort of nuisance soon.
2015-08-09 00:38:30 +06:00
benchmarks renamed ‘MegaParsec’ → ‘Megaparsec’, close #10 2015-08-01 22:24:45 +06:00
old-tests fixing things in ‘Text.Megaparsec.Error’ 2015-08-08 15:48:20 +06:00
tests fix regression in ‘setErrorMessage’, add tests 2015-08-09 00:38:30 +06:00
Text fix regression in ‘setErrorMessage’, add tests 2015-08-09 00:38:30 +06:00
.gitignore preparatory changes 2015-07-27 15:03:58 +06:00
.travis.yml renamed ‘oldtests’ → ‘old-tests’ for readability 2015-08-03 13:23:52 +06:00
AUTHORS.md renamed ‘MegaParsec’ → ‘Megaparsec’, close #10 2015-08-01 22:24:45 +06:00
CHANGELOG.md further cosmetic changes in ‘Text.Megaparsec.Char’ 2015-08-09 00:37:51 +06:00
LICENSE.md renamed ‘MegaParsec’ → ‘Megaparsec’, close #10 2015-08-01 22:24:45 +06:00
megaparsec.cabal representation of tokens in error messages, fixed #12 2015-08-06 16:37:08 +06:00
megaparsec.ebal added ‘megaparsec.ebal’ file 2015-08-03 13:20:48 +06:00
README.md integration with Coveralls 2015-08-03 12:46:53 +06:00
Setup.hs Initial import 2008-01-13 17:53:15 +00:00

Megaparsec

License BSD3 Build Status Coverage Status

This is industrial-strength monadic parser combinator library. Megaparsec is a fork of original Parsec library written by Daan Leijen. This library is different from Parsec in the following ways:

  • Original Parsec consists of quite ancient code-base and has certain stylistic problems that's anyone who tries to compile Parsec with -Wall option can notice. This has been refreshed in Megaparsec. The changes are mainly cosmetic but not limited to them.

  • Some quirks and old «buggy features» (as well as plain bugs) are fixed.

  • Original Parsec uses rather weak collection of tests: a test per bug, obviously to prevent regression. Our aim is to write complete test-suite with QuickCheck to cover 100% of Megaparsec code. You can understand need for this test-suite if you look at CHANGELOG.md file that includes Parsec-era changes. The word «regression» mentioned quite frequently.

  • Megaparsec looks into future, it does not contain code that serves for compatibility purposes, it also requires more recent version of base.

  • Finally, we have fixed numerous typos and other minor flaws.

The reason for creating separate version of the project was inactivity of its current maintainer who reduced active contributions to something like one commit in three months and indefinitely delayed merging of our contributions without any explanation. We wanted to improve Parsec and we had some ideas how this can be achieved, so we decided to create our own version of Parsec.

Contributing

Issues (bugs, feature requests or otherwise feedback) may be reported in the Github issue tracker for this project.

Pull-requests are also welcome (and yes they will get attention and will be merged quickly if they are good).

License

Copyright © 2015 Megaparsec contributors
Copyright © 2007 Paolo Martini
Copyright © 19992000 Daan Leijen

Distributed under BSD3 license.