Releases: mnemnion/mvzr
Try to match empty string
Bug fixes: alt + modifier, Kleene * + subsequent fail
This release fixes one bug in the regex compiler, and one in the matching runtime.
Upgrading is recommended.
Scoped Logging
Compile errors are now scoped in .mvzr
, making it practical to filter them out when desired.
Regex convenience type now public
This release makes the Regex type, which is just SizedRegex(64,8)
, public.
No other changes from v0.2.1
.
Add regex.matchPos
A convenience function which slices the string for you, and adjusts the values in the Match returned to their location in the original haystack string.
Add eager {M,N}+ qualifier
Implements a{M,N}+ I consider this an especially useful eager qualifier to have. It is in the very nature of {M,N} patterns to 'want to' match N when that can be accomplished. I'm in favor of the use of eager/possessives in general, actually. Many cases of greedy qualifiers could be either lazy or eager instead, those which actually split the difference are rare.
Bugfix: character sets
Correctly handle the case where a hyphen is the final member of the set: adding the character before the hyphen, and the hyphen, instead of just adding the hyphen twice.
Version 0.1
This release adds word boundaries, allows character classes inside character sets, permits a newline to match $
, and otherwise refactors, fixes, and improves mvzr
.
Test coverage is decent, if not yet complete, and it has about as many features as I expect it to. Taking a look at this list of features, most of what isn't supported is a non-goal for mvzr
. There are one or two I might consider.
At this point, you might reasonably expect that, using mvzr
, you're likely to end up with matches for your regular expressions, which resemble what you expect. If not, please file an issue, and I'll see what I can do.
SizedRegex works, deduplicate character sets
This release fixes a function-signature problem with the dispatch functions, where they relied on the size of the default Regex
character sets.
Also deduplicates character sets, meaning more patterns fit in the default size.
Improves group logic, bugfixes, more tests
Group patterns followed by more pattern now check the next match, giving later alternates a chance to succeed if necessary.