Parsley 3.0.0
NOTE: This release has several backwards incompatible changes: this includes changing runParser
to parse
and any previously deprecated functionality from v2.2.0+, some combinators were removed without prior deprecation warning as well.
What's Changed
- deprecated combinators from the old-style API have been removed
- #81 Parser API Changes: This adjusts the old
runParser
to be justparse
as well as introducing a separation between IO-based methods of
running a parser and not. Also, running a parser from file results in aTry
wrapper to protect properly against exceptions - #82 Higher-arity map changed to
zipped
: the.map
notation has been changed to a.zipped
notation and the function has been made
optional. The implicits have also been reorganised into submodules withinparsley.implicits
- #83 Parsley 3 debug: coloured output can now be disabled on debug combinators. Fixing #60.
- #88 Parsley 3 expr: Adds in curried application of
precedence
- #91 Parsley 3 precedence improvements: Allows for precedence tables to written in either strong-to-weak or weak-to-strong ordering.
Improved the levels datatype to remove the redundantLevels.empty
terminal node. - Moved
withFilter
to its own module, since its only needed in 2.12 - Improved error for
notFollowedBy
- Moved
unexpected
,fail
,filterOut
,collectMsg
,guardAgainst
,?
,label
,explain
,hide
,!
toparsley.errors.combinators
. - Removed
>?>
,guard
, andguardNot
What's New
- #81 Parser API Changes: introduced the
parsley.io
module (absent for scala-js parsley) - #88 Parsley 3 expr: added
prefix1
andpostfix1
combinators - #90 Parsley 3 errors: The main body of work for the Parsley 3 release, introduces an
ErrorBuilder
abstraction to allow the users of the API to
decide how errors should be formatted, giving them the control to produce their own datatypes. - #91 Parsley 3 precedence improvements: This adds the ability to use non-associative operators (i.e. single use) in a precedence table. Also
allows for precedence tables to written in either strong-to-weak or weak-to-strong ordering. Introduced a newSOps
abstraction to better
support sub-typed non-monolithic trees. AddedAtoms
terminal node forLevels
.