Releases: j-mie6/parsley
Parsley 2.4.4
This release guarantees full thread-safety of the AST and compilation step of Parsley. In addition, code generation times have improved, and potential code blow-up has been mitigated for parsers which heavily influence the default error messages. Consists of work performed in #58 and undoes work done in #57.
Parsley 2.4.3
This one should hopefully fix the same race condition that 2.4.2 apparently fixed. This one is really quite a tricky one...
Parsley 2.4.2
This release should fix an apparent race condition when two threads try and compile a shared parser (running a shared parser is completely thread-safe!) #57
Parsley 2.4.1
Fixed #54, which essentially rendered decide
with two arguments useless. It now works as intended.
Parsley 2.4.0
As it turns out, the ~>
and <~
combinators were missing from the API. This has been rectified. In addition, collectMsg
has been added for finer control over error messages when using the collect
combinator.
Parsley 2.3.0
This release merges the #42 and #43 PRs.
What's New
- Added
reduceLeft
,reduceLeftOption
,reduceRight
,reduceRightOption
combinators - Added the
zip
alias to<~>
- Improved performance of
foldLeft
andfoldLeft1
- Slight performance improvement for
chain.left1
andchain.left
- Added
parseFromFile
method to parsers
Parsley 2.2.2
This version addresses a very minor duplication in foldRight1
and foldLeft1
, where they unnecessarily duplicate the callee, instead of generating a subroutine.
Parsley 2.2.1
Fixed a bug where chain.left1
does not correctly wrap up a lone atom when the operator fails (since it was left on the stack unchanged). This affected generalised precedence tables.
Parsley 2.2.0
This release has laid the groundwork (and hopefully final!) for the Parsley 3.0.0 new-style
API. Any and all of the old-style
API has been deprecated strongly and will be removed in Parsley 3.0.0. A full description of these changes can be found here.
What's New
In addition to lift1
through lift3
, lift4
through lift22
have been added to parsley.lift
. To complement these, parsley.implicits
contains some extension methods which allow the method .lift
on any value or function (corresponding to pure
or the liftN
of the correct arity N
).
The logic of the former ExpressionParser
has been redesigned and can be found in parsley.expr
What's Deprecated
The following classes/combinators have been deprecated:
Classes
parsley.BitGen
- All combinators in
parsley.Char
parsley.CharSet
- All combinators in
parsley.Combinator
- All functionality in
parsley.ExpressionParser
parsley.Impl
- All implicits in
parsley.Implicits
parsley.LanguageDef
parsley.NotRequired
parsley.Parser
parsley.Predicate
parsley.Reg
- All functionality in
parsley.TokenParser
Combinators
parsley.Parsley.many
parsley.Parsley.skipMany
parsley.Parsley.lift1
parsley.Parsley.lift2
parsley.Parsley.lift3
parsley.Parsley.get
parsley.Parsley.put
parsley.Parsley.gets
parsley.Parsley.modify
parsley.Parsley.local
parsley.Parsley.rollback
Parsley 2.1.0
What's New
Added the foldLeft1
and foldRight1
combinators
What's Fixed
Fixed #37, which was caused by using foldLeft
instead of foldLeft1