2015-08-01 19:24:45 +03:00
|
|
|
## Megaparsec 4.0.0
|
2015-07-28 16:32:19 +03:00
|
|
|
|
|
|
|
* Cosmetic changes in entire source code, numerous improvements and
|
|
|
|
elimination of warnings.
|
|
|
|
|
2015-07-31 17:13:38 +03:00
|
|
|
* Rewritten parsing of numbers, fixed #2 and #3 (in old Parsec project these
|
|
|
|
are number 35 and 39 respectively), added per bug tests.
|
|
|
|
|
|
|
|
* Since Haskell report doesn't say anything about sign, I've made
|
2015-08-01 17:39:20 +03:00
|
|
|
`integer` and `float` parse numbers without sign.
|
2015-07-31 17:13:38 +03:00
|
|
|
|
2015-08-01 17:39:20 +03:00
|
|
|
* Removed `natural` parser, it's equal to new `integer` now.
|
2015-07-31 17:13:38 +03:00
|
|
|
|
2015-08-01 17:39:20 +03:00
|
|
|
* Renamed `naturalOrFloat` → `number` — this doesn't parse sign too.
|
2015-07-31 17:13:38 +03:00
|
|
|
|
2015-08-01 17:39:20 +03:00
|
|
|
* Added new combinator `signed` to parse all sorts of signed numbers.
|
2015-07-31 17:13:38 +03:00
|
|
|
|
2015-08-01 17:39:20 +03:00
|
|
|
* For the sake of convenience I've added `integer'`, `float'`, and
|
|
|
|
`number'` combinators that also can parse signed numbers out of box.
|
|
|
|
|
|
|
|
* Renamed `many1` → `some` as well as other parsers that had `many1` part in
|
|
|
|
their names.
|
|
|
|
|
2015-08-12 21:40:32 +03:00
|
|
|
* The following functions are now re-exported from `Control.Applicative`:
|
2015-08-01 17:39:20 +03:00
|
|
|
`(<|>)`, `many`, `some`, `optional`. See #9.
|
2015-07-31 17:13:38 +03:00
|
|
|
|
2015-08-08 18:17:27 +03:00
|
|
|
* Introduced type class `ShowToken` and improved representation of
|
2015-08-06 13:37:08 +03:00
|
|
|
characters and stings in error messages, see #12.
|
|
|
|
|
2015-08-08 18:17:27 +03:00
|
|
|
* Renamed parser `endOfLine` to `eol` (module `Text.Megaparsec.Char`).
|
|
|
|
|
2015-08-12 15:41:44 +03:00
|
|
|
* Greatly improved quality of error messages. Fixed entire
|
|
|
|
`Text.Megaparsec.Error` module, see #14 for more information. Made
|
|
|
|
possible normal analysis of error messages without “render and re-parse”
|
|
|
|
approach that previous maintainers need to practice to write even simplest
|
|
|
|
tests, see module `Utils.hs` in `old-tests` for example.
|
|
|
|
|
|
|
|
* Reduced number of `Message` constructors (now there are only `Unexpected`,
|
|
|
|
`Expected`, and `Message`). Empty “magic” message strings are ignored now,
|
|
|
|
all the library now uses explicit error messages.
|
|
|
|
|
|
|
|
* Renamed `semi` to `semicolon` and other associated parasers in
|
|
|
|
`Text.Megaparsec.Token`.
|
|
|
|
|
2015-08-12 20:00:03 +03:00
|
|
|
* Added new character parsers in `Text.Megaparsec.Char`:
|
|
|
|
|
|
|
|
* `controlChar`
|
|
|
|
* `printChar`
|
|
|
|
* `markChar`
|
|
|
|
* `numberChar`
|
|
|
|
* `punctuationChar`
|
|
|
|
* `symbolChar`
|
|
|
|
* `separatorChar`
|
|
|
|
* `asciiChar`
|
|
|
|
* `latin1Char`
|
|
|
|
* `charCategory`
|
|
|
|
|
|
|
|
* Renamed some parsers:
|
|
|
|
|
|
|
|
* `spaces` → `space`
|
|
|
|
* `space` → `spaceChar`
|
|
|
|
* `lower` → `lowerChar`
|
|
|
|
* `upper` → `upperChar`
|
|
|
|
* `letter` → `letterChar`
|
|
|
|
* `alphaNum` → `alphaNumChar`
|
|
|
|
* `digit` → `digitChar`
|
|
|
|
* `octDigit` → `octDigitChar`
|
|
|
|
* `hexDigit` → `hexDigitChar`
|
|
|
|
|
|
|
|
* Descriptions of old parsers have been updated to accent some
|
|
|
|
Unicode-specific moments. For example, old description of `letter` stated
|
|
|
|
that it parses letters from “a” to “z” and from “A” to “Z”. This is wrong,
|
|
|
|
since it used `Data.Char.isAlpha` predicate internally and thus parsed
|
|
|
|
many more characters.
|
|
|
|
|
2015-08-25 12:55:57 +03:00
|
|
|
* Added more powerful `count'` parser. This parser can be told to parse from
|
|
|
|
`m` to `n` occurrences of some thing. `count` is defined in terms of
|
|
|
|
`count'`.
|
2015-08-12 21:40:32 +03:00
|
|
|
|
2015-08-17 18:58:59 +03:00
|
|
|
* Hint system introduced that greatly improved quality of error messages
|
|
|
|
and made code of `Text.Megaparsec.Prim` a lot clearer.
|
|
|
|
|
|
|
|
* Removed `optionMaybe` parser, because `optional` from
|
|
|
|
`Control.Applicative` does the same thing.
|
|
|
|
|
|
|
|
* Renamed `tokenPrim` → `token`, removed old `token`, because `tokenPrim` is
|
|
|
|
more general and `token` is little used.
|
|
|
|
|
|
|
|
* Fixed bug with `notFollowedBy` always succeeded with parsers that don't
|
|
|
|
consume input, see #6.
|
|
|
|
|
2015-08-19 22:08:20 +03:00
|
|
|
* Added new primitive combinator `hidden p` which hides “expected” tokens in
|
|
|
|
error message when parser `p` fails.
|
|
|
|
|
2015-08-20 11:05:41 +03:00
|
|
|
* Added new function `parse'` for lightweight parsing where error messages
|
|
|
|
(and thus file name) are not important and entire input should be
|
|
|
|
parsed. For example it can be used when parsing of single number according
|
|
|
|
to specification of its format is desired.
|
|
|
|
|
|
|
|
* Renamed `putState` → `setState` for consistency.
|
|
|
|
|
2015-08-22 11:57:16 +03:00
|
|
|
* Flipped order of arguments in the primitive combinator `label`, see #21.
|
|
|
|
|
2015-08-23 11:04:12 +03:00
|
|
|
* Renamed the following functions and data types:
|
|
|
|
|
|
|
|
* `permute` → `makePermParser`
|
|
|
|
* `buildExpressionParser` → `makeExprParser`
|
|
|
|
* `GenLanguageDef` → `LanguageDef`
|
|
|
|
* `GenTokenParser` → `Lexer`
|
|
|
|
* `makeTokenParser` → `makeLexer`
|
|
|
|
|
2015-08-23 19:58:42 +03:00
|
|
|
* Added combinator `someTill`.
|
|
|
|
|
2015-08-24 23:04:10 +03:00
|
|
|
* These combinators are considered deprecated and will be removed in future:
|
|
|
|
|
|
|
|
* `chainl`
|
|
|
|
* `chainl1`
|
|
|
|
* `chainr`
|
|
|
|
* `chainr1`
|
|
|
|
* `sepEndBy`
|
|
|
|
* `sepEndBy1`
|
|
|
|
|
2015-09-06 12:11:18 +03:00
|
|
|
* Added combinators `char'`, `oneOf'`, `noneOf'`, and `string'` which are
|
|
|
|
case-insensitive variants of `char`, `oneOf`, `noneOf`, and `string`
|
|
|
|
respectively.
|
2015-09-04 15:12:59 +03:00
|
|
|
|
2015-07-31 17:13:38 +03:00
|
|
|
* Added comprehensive QuickCheck test suite.
|
|
|
|
|
|
|
|
* Added benchmarks.
|
|
|
|
|
2015-07-28 16:32:19 +03:00
|
|
|
* Fixed typos in source code and other files.
|
|
|
|
|
2015-07-27 12:00:41 +03:00
|
|
|
## Parsec 3.1.9
|
|
|
|
|
|
|
|
* Many and various updates to documentation and package description
|
|
|
|
(including the homepage links).
|
|
|
|
|
|
|
|
* Add an `Eq` instance for `ParseError`.
|
|
|
|
|
|
|
|
* Fixed a regression from 3.1.6: `runP` is again exported from module
|
|
|
|
`Text.Parsec`.
|
|
|
|
|
|
|
|
## Parsec 3.1.8
|
|
|
|
|
|
|
|
* Fix a regression from 3.1.6 related to exports from the main module.
|
|
|
|
|
|
|
|
## Parsec 3.1.7
|
|
|
|
|
|
|
|
* Fix a regression from 3.1.6 related to the reported position of error
|
|
|
|
messages. See bug #9 for details.
|
|
|
|
|
|
|
|
* Reset the current error position on success of `lookAhead`.
|
|
|
|
|
|
|
|
## Parsec 3.1.6
|
|
|
|
|
|
|
|
* Export `Text` instances from `Text.Parsec`.
|
|
|
|
|
|
|
|
* Make `Text.Parsec` exports more visible.
|
|
|
|
|
|
|
|
* Re-arrange `Text.Parsec` exports.
|
|
|
|
|
|
|
|
* Add functions `crlf` and `endOfLine` to `Text.Parsec.Char` for handling
|
|
|
|
input streams that do not have normalized line terminators.
|
|
|
|
|
|
|
|
* Fix off-by-one error in `Token.charControl`.
|
|
|
|
|
|
|
|
## Parsec 3.1.4 & 3.1.5
|
|
|
|
|
|
|
|
* Bump dependency on `text`.
|
|
|
|
|
|
|
|
## Parsec 3.1.3
|
|
|
|
|
|
|
|
* Fix a regression introduced in 3.1.2 related to positions reported by
|
|
|
|
error messages.
|