| Age | Commit message (Collapse) | Author |
|
|
|
|
|
Avoid deep nested alternations, parse them flattened.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(?=[A-Z]\w*) is strictly the same as (?=[A-Z]) as \w* will always
at least match an empty string.
|
|
Lookarounds still need to be fixed size, but accept character classes
as well as plain literals.
|
|
|
|
|
|
|
|
|
|
|
|
We were passing around iterators that were not allowed to
go before the begin iterator.
|
|
Rework assertion code as well.
|
|
|
|
|
|
|
|
And a few more code cleanup in the ThreadedRegexVM
|
|
|
|
|
|
Makes the code simpler.
|
|
|
|
|
|
|
|
Regex can be compiled for backward matching instead of forward matching
and the ThreadedRegexVM is able to iterate in reverse on the subject
string to find the last match instead of the first.
|
|
|
|
|
|
reinterpret_cast was undefined behaviour as we do not guarantee
that offsets are going to be stored properly aligned.
|
|
|
|
|
|
|
|
With this optimization we get close to performance parity with boost
regex on the common use cases in Kakoune.
|
|
|
|
|
|
When not saving, we were not fully reading the instruction stream,
leading to an out of sync instruction pointer.
|
|
We were wrongly keeping the `:` as a literal content of the group
|
|
|
|
|
|
Its faster to have specialized code in the VM directly
|
|
|
|
|
|
|
|
|
|
|
|
|