2015-07-27 12:00:41 +03:00
|
|
|
|
# MegaParsec
|
2014-10-16 20:21:52 +04:00
|
|
|
|
|
2015-07-27 12:00:41 +03:00
|
|
|
|
[![License BSD3](https://img.shields.io/badge/license-BSD3-brightgreen.svg)](http://opensource.org/licenses/BSD-3-Clause)
|
2015-07-27 12:12:29 +03:00
|
|
|
|
[![Build Status](https://travis-ci.org/mrkkrp/megaparsec.svg?branch=master)](https://travis-ci.org/mrkkrp/megaparsec)
|
2014-10-16 20:21:52 +04:00
|
|
|
|
|
2015-07-27 12:00:41 +03:00
|
|
|
|
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:
|
2014-10-16 20:21:52 +04:00
|
|
|
|
|
2015-07-30 22:13:22 +03:00
|
|
|
|
* 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.
|
2014-10-16 20:21:52 +04:00
|
|
|
|
|
2015-07-27 12:00:41 +03:00
|
|
|
|
* Some quirks and old «buggy features» (as well as plain bugs) are fixed.
|
2014-10-16 20:21:52 +04:00
|
|
|
|
|
2015-07-27 12:00:41 +03:00
|
|
|
|
* 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.
|
2014-10-16 20:21:52 +04:00
|
|
|
|
|
2015-07-30 19:04:33 +03:00
|
|
|
|
* MegaParsec looks into future, it does not contain code that serves for
|
|
|
|
|
compatibility purposes, it also requires more recent version of `base`.
|
|
|
|
|
|
2015-07-27 12:00:41 +03:00
|
|
|
|
* Finally, we have fixed numerous typos and other minor flaws.
|
2014-10-16 20:21:52 +04:00
|
|
|
|
|
2015-07-27 12:00:41 +03:00
|
|
|
|
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.
|
2014-10-16 20:21:52 +04:00
|
|
|
|
|
|
|
|
|
## Contributing
|
|
|
|
|
|
|
|
|
|
Issues (bugs, feature requests or otherwise feedback) may be reported in
|
2015-07-27 12:00:41 +03:00
|
|
|
|
[the Github issue tracker for this project](https://github.com/mrkkrp/megaparsec/issues).
|
2014-10-16 20:21:52 +04:00
|
|
|
|
|
2015-07-27 12:00:41 +03:00
|
|
|
|
Pull-requests are also welcome (and yes they will get attention and will be
|
|
|
|
|
merged quickly if they are good).
|
2014-10-16 20:21:52 +04:00
|
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
2015-07-27 12:00:41 +03:00
|
|
|
|
Copyright © 1999–2000 Daan Leijen<br>
|
2015-07-27 12:28:15 +03:00
|
|
|
|
Copyright © 2007 Paolo Martini<br>
|
2015-07-27 12:00:41 +03:00
|
|
|
|
Copyright © 2015 MegaParsec contributors
|
|
|
|
|
|
|
|
|
|
Distributed under BSD3 license.
|