Open
Conversation
5a6dec8 to
b01fc25
Compare
b01fc25 to
e33ba47
Compare
e33ba47 to
e4578d5
Compare
e4578d5 to
bfcbe55
Compare
bfcbe55 to
88a0880
Compare
c0ede3c to
87ed75f
Compare
87ed75f to
71de2be
Compare
71de2be to
73058da
Compare
73058da to
ce4e510
Compare
ce4e510 to
745e5ce
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.8.0→0.12.0Release Notes
zesterer/chumsky (chumsky)
v0.12.0Added
MapExtra::emit, which allows emitting secondary errors during mapping operationsInputRef::emit, which allows emitting secondary errors withincustomparserslabelled_with, which avoids the need to implementClonefor labelsInput::split_token_span, a convenience function for splitting(Token, Span)inputs so that chumsky can understand themInput::split_spanned, which does the same as above, but for implementors ofWrappingSpanspanned, a combinator which automatically annotates a parser output with a spanIterParser::parse_iter, a way to turn anIterParser(likex.repeated()) into an iteratorParser::debug, which provides access to various parser debugging utilities.Changed
nested_inmore flexible by allowing it to map between different input types instead of requiring the same input as the outer parserFixed
nested_inv0.11.2Added
Default,PartialOrd, andOrdforSimpleSpanPartialOrdandOrdforRichv0.11.1Fixed
v0.11.0Added
set(...)combinator, which may be used to conveniently parse a set of patterns, in any order.pratt(...)combinatorParser::try_foldl, allowing folding operations to short-circuit in a manner similar toParser::try_mapParser::contextual, which allows a parser to be disabled or enabled in a context-sensitive mannerValueInputforIterInput, which was previously missingStatetrait:RollbackState, which reverts parser state when a parser rewinds and may be used to, for example, count the number of times a pattern appears in the inputTruncateState, which truncates a vector when a parser rewinds, and may be used to implement an arena allocator for AST nodesIterParserfora.then(b)when bothaandbare bothIterParsers that produce the same output typeChanged
recursiveandParserExtramore permissiveParser::filternow generates aDefaultExpected::SomethingElselabel instead of nothing (this can be overridden with the.labelled(...)function)select!parser more permissive, accepting any implementor ofInputinstead of requiringValueInputtooFixed
Parser::try_map).rewind()parser no longer rewinds any secondary error that were encounteredtext::ascii::keywordlifetime regressionv0.10.1Added
ContainerforVecDequeChanged
Boxedtypes now have a default type parameter ofextra::Default, likeParserandIterParser0.10and has been moved to the guideFixed
v0.10.0Note: version 0.10 is a from-scratch rewrite of chumsky with innumerable small changes. To avoid this changelog being
longer than the compiled works of Douglas Adams, the following is a high-level overview of the major feature additions
and does not include small details.
Added
more
IterParser, that allows expressing parsers that generate many outputsinterners, and much more
impl Readers, iterators, etc.computational complexity of parsing certain grammars
prattparser combinator, allowing for conveniently and simply creating expression parsers with precise operatorprecedence
regexcombinator, allowing the parsing of terms based on a specific regex patternRemoved
Parser::then_withhas been removed in favour of the new context-sensitive combinatorsChanged
v0.9.2Fixed
skip_then_retry_untilregressionv0.9.1Fixed
skip_then_retry_untilrecovery strategyv0.9.0Added
spill-stackfeature that usesstackerto avoid stack overflow errors for deeply recursive parsersselect!likeselect! { |span| Token::Num(x) => (x, span) }skip_parserrecovery strategy that allows you to implement your own recovery strategies in terms of otherparsers. For example,
.recover_with(skip_parser(take_until(just(';'))))skips tokens until after the next semicolonnotcombinator that consumes a single token if it is not the start of a given pattern. For example,just("\\n").or(just('"')).not()matches anycharthat is not either the final quote of a string, and is not thestart of a newline escape sequence
semantic_indentationparser for parsing indentation-sensitive languages. Note that this is likely to bedeprecated/removed in the future in favour of a more powerful solution
#[must_use]attribute for parsers to ensure that they're not accidentally created without being usedOption<Vec<T>>andVec<Option<T>>now implementChain<T>andOption<String>implementsChain<char>choicenow supports both arrays and vectors of parsers in addition to tuplesSimpleerror type now implementsEqChanged
text::whitespacereturns aRepeatedinstead of animpl Parser, allowing you to call methods likeat_leastandexactlyon it.no_stdsupportDisplayimplementations for various built-in error types andSimpleReasonOrderedContainertrait to avoid unexpected behaviour for unordered containers in combination withjustFixed
todo,unwrapped, etc.) more useful by reporting the parser's location on panicConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.