| Age | Commit message (Collapse) | Author |
|
Computing potential start characters from lookarounds is more complex
than expected, and not worth the complexity.
|
|
|
|
|
|
|
|
|
|
|
|
Fixes #1628
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
We were wrongly keeping the `:` as a literal content of the group
|
|
Its faster to have specialized code in the VM directly
|
|
|
|
|
|
|
|
|
|
|
|
In addition to running boost regex, run our custom regex and compare
the results to ensure the two regex engine agree.
|
|
|
|
|
|
This is the most common syntax in various regex variants.
|
|
We do not support anything else than a plain literal string for
lookarounds.
|
|
|