summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-11-01Regex: move try/catch blocks inside boost specific codeMaxime Coste
2017-11-01Regex: small code cleanupMaxime Coste
2017-11-01Regex: support more than two children in alternationsMaxime Coste
Avoid deep nested alternations, parse them flattened.
2017-11-01Regex: print instruction index in dump_regexMaxime Coste
2017-11-01Regex: Assert that the regex direction matches the vm directionMaxime Coste
2017-11-01Regex: Tweak definition of character class and control escape tablesMaxime Coste
2017-11-01Regex: fix lookarounds handling when computing starting charsMaxime Coste
2017-11-01Make use of custom regex backward searching support for reverse searchMaxime Coste
2017-11-01Regex: Make boost checking disableable at compile timeMaxime Coste
2017-11-01Regex: switch to custom impl, use boost for checkingMaxime Coste
2017-11-01Regex: Fix lookaround use in moon.kakMaxime Coste
(?=[A-Z]\w*) is strictly the same as (?=[A-Z]) as \w* will always at least match an empty string.
2017-11-01Regex: Support any char and character classes in lookaroundsMaxime Coste
Lookarounds still need to be fixed size, but accept character classes as well as plain literals.
2017-11-01Regex: use std::conditional instead of custom template class to choose Utf8ItMaxime Coste
2017-11-01Regex: Fix computation of potential starts for lookaheadsMaxime Coste
2017-11-01Regex: detect when all characters can start and avoid allocatingMaxime Coste
2017-11-01Regex: add elided braces to fix compilation on older gccMaxime Coste
2017-11-01Regex: Fix wrong size of character_class_escapes arrayMaxime Coste
2017-11-01Regex: Fix handling of match_prev_avail for boost regexMaxime Coste
We were passing around iterators that were not allowed to go before the begin iterator.
2017-11-01Regex: Introduce RegexExecFlags::PrevAvailableMaxime Coste
Rework assertion code as well.
2017-11-01Regex: Do not use sized deallocation to support more compilersMaxime Coste
2017-11-01Regex: deallocate Saves memory on ThreadedRegexVM destructionMaxime Coste
2017-11-01Regex: Fix handling of control escapes inside character classesMaxime Coste
2017-11-01Regex: tag instructions as scheduled as well instead of searchingMaxime Coste
And a few more code cleanup in the ThreadedRegexVM
2017-11-01Regex: refactor ThreadedRegexVM::exec_from codeMaxime Coste
2017-11-01Regex: store the processed flag directly in CompiledRegex instructionsMaxime Coste
2017-11-01Regex: abandon bytecode and just use a simple list of instructionsMaxime Coste
Makes the code simpler.
2017-11-01Regex: Add some comments, remove supurious semicolonsMaxime Coste
2017-11-01Regex: fix get_base(std::reverse_iterator<...>) returning a ref to temporaryMaxime Coste
2017-11-01Regex: avoid infinite loopsMaxime Coste
2017-11-01Regex: Add support for backward matchingMaxime Coste
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.
2017-11-01Regex: Remove static RegexCompiler::compileMaxime Coste
2017-11-01Regex: remove use of buffer_utils.hh from regex_impl.ccMaxime Coste
2017-11-01Regex: Use memcpy to write/read offsets from bytecodeMaxime Coste
reinterpret_cast was undefined behaviour as we do not guarantee that offsets are going to be stored properly aligned.
2017-11-01Regex: slight cleanup of the unit testsMaxime Coste
2017-11-01Regex: Cleanup character class parsing a bitMaxime Coste
2017-11-01Regex: Make ThreadedRegexVM a proper class, define a proper interfaceMaxime Coste
2017-11-01Regex: Find potential start position using a map of valid start charsMaxime Coste
With this optimization we get close to performance parity with boost regex on the common use cases in Kakoune.
2017-11-01Regex: Optimize single char character classes as literalsMaxime Coste
2017-11-01Regex: reorder lookaround ops, group by directionMaxime Coste
2017-11-01Regex: Fix handling of Save instruction in ThreadedRegexVMMaxime Coste
When not saving, we were not fully reading the instruction stream, leading to an out of sync instruction pointer.
2017-11-01Regex: Fix handling of non capturing groups (?:...)Maxime Coste
We were wrongly keeping the `:` as a literal content of the group
2017-11-01Regex: More code tweaks and cleanups in ThreadedRegexVMMaxime Coste
2017-11-01Regex: Code cleanup and refactor for Saves handlingMaxime Coste
2017-11-01Regex: do not write the search prefix inside the program bytecodeMaxime Coste
Its faster to have specialized code in the VM directly
2017-11-01Regex: small code tweakMaxime Coste
2017-11-01Regex: Use a custom allocated buffer for Saves instead of a VectorMaxime Coste
2017-11-01Regex: make m_current_threads and m_next_threads local variable of execMaxime Coste
2017-11-01Regex: Add a NoSaves RegexExecFlags to disable saving positionsMaxime Coste
2017-11-01Regex: small refactor of ThreadedRegexVM::clone_savesMaxime Coste
2017-11-01Regex: Refactor thread handling in ThreadedRegexVMMaxime Coste