ladybird/Libraries/LibRegex
mikiubo 535d2476a7 LibRegex: Implement proper lookbehind via new StepBack opcodes
This introduces a new mechanism for evaluating lookbehind assertions by
adding four new bytecode opcodes: SetStepBack, IncStepBack,
CheckStepBack, and CheckSavedPosition.

These opcodes replace the previous GoBack-based approach and enables
correct handling of variable-length lookbehind patterns,
where the match length cannot be known statically.

Track lookbehind greediness in the parser and propagate it to bytecode
generation. Allow controlled backtracking in lookbehind bodies while
avoiding incorrect captures during step-back execution.

Partially fix issue: #3459
2026-01-11 23:24:49 +01:00
..
CMakeLists.txt CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
Forward.h LibRegex+LibJS: Flatten the bytecode buffer before regex execution 2026-01-05 18:22:11 +01:00
Regex.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
RegexByteCode.cpp LibRegex: Implement proper lookbehind via new StepBack opcodes 2026-01-11 23:24:49 +01:00
RegexByteCode.h LibRegex: Implement proper lookbehind via new StepBack opcodes 2026-01-11 23:24:49 +01:00
RegexBytecodeStreamOptimizer.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
RegexDebug.h LibRegex: Implement proper lookbehind via new StepBack opcodes 2026-01-11 23:24:49 +01:00
RegexDefs.h LibRegex+LibUnicode: Add unicode string properties 2025-10-24 13:24:55 -04:00
RegexError.h LibRegex+LibUnicode: Add unicode string properties 2025-10-24 13:24:55 -04:00
RegexLexer.cpp LibRegex: Clean up #include directives 2024-11-21 14:08:33 +01:00
RegexLexer.h LibRegex: Annotate classes with export macro for hidden visibility 2025-05-12 03:22:23 -06:00
RegexMatch.h LibRegex: Implement proper lookbehind via new StepBack opcodes 2026-01-11 23:24:49 +01:00
RegexMatcher.cpp LibRegex: Add an optimisation for replacing /.*x/ with a seek op 2026-01-05 18:22:11 +01:00
RegexMatcher.h LibRegex: Skip multi-op compare overhead when not necessary 2026-01-05 18:22:11 +01:00
RegexOptimizer.cpp LibRegex: Process RSeekTo candidates in the correct order 2026-01-07 00:14:02 +01:00
RegexOptions.h LibRegex: Flatten capture group list in MatchState 2025-04-18 17:09:27 +02:00
RegexParser.cpp LibRegex: Implement proper lookbehind via new StepBack opcodes 2026-01-11 23:24:49 +01:00
RegexParser.h LibRegex: Implement proper lookbehind via new StepBack opcodes 2026-01-11 23:24:49 +01:00