1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:57:44 +00:00

LibRegex: Make codegen+optimisation for alternatives much faster

Just a little thinking outside the box, and we can now parse and
optimise a million copies of "a|" chained together in just a second :^)
This commit is contained in:
Ali Mohammad Pur 2022-02-20 03:25:21 +03:30 committed by Andreas Kling
parent 4be7239626
commit 97a333608e
5 changed files with 150 additions and 65 deletions

View file

@ -35,9 +35,12 @@ public:
template<typename T>
void print_bytecode(Regex<T> const& regex) const
{
MatchState state;
auto& bytecode = regex.parser_result.bytecode;
print_bytecode(regex.parser_result.bytecode);
}
void print_bytecode(ByteCode const& bytecode) const
{
MatchState state;
for (;;) {
auto& opcode = bytecode.get_opcode(state);
print_opcode("PrintBytecode", opcode, state);