megaparsec/README.md

51 lines
2.3 KiB
Markdown
Raw Normal View History

# Megaparsec
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)
2015-08-02 10:33:26 +03:00
[![Coverage Status](https://coveralls.io/repos/mrkkrp/megaparsec/badge.svg?branch=master&service=github)](https://coveralls.io/github/mrkkrp/megaparsec?branch=master)
This is industrial-strength monadic parser combinator library. Megaparsec is
2015-07-27 12:00:41 +03:00
a fork of original Parsec library written by Daan Leijen. This library is
different from Parsec in the following ways:
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
2015-07-30 22:13:22 +03:00
mainly cosmetic but not limited to them.
2015-07-27 12:00:41 +03:00
* Some quirks and old «buggy features» (as well as plain bugs) are fixed.
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
2015-07-27 12:00:41 +03:00
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
2015-07-30 19:04:33 +03:00
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.
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.
## 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).
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).
## License
Copyright © 2015 Megaparsec contributors<br>
2015-07-27 12:28:15 +03:00
Copyright © 2007 Paolo Martini<br>
2015-07-31 14:44:27 +03:00
Copyright © 19992000 Daan Leijen
2015-07-27 12:00:41 +03:00
Distributed under BSD3 license.