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

LibRegex: Correctly parse BRE bracket expressions

Commonly, bracket expressions are in fact, enclosed in brackets.
This commit is contained in:
Ali Mohammad Pur 2021-07-10 22:02:18 +04:30 committed by Ali Mohammad Pur
parent 1c69c686e3
commit 1c584e9d80
2 changed files with 19 additions and 5 deletions

View file

@ -481,12 +481,20 @@ bool PosixBasicParser::parse_one_char_or_collation_element(ByteCode& bytecode, s
Vector<CompareTypeAndValuePair> values;
size_t bracket_minimum_length = 0;
if (!AbstractPosixParser::parse_bracket_expression(values, bracket_minimum_length))
return false;
bytecode.insert_bytecode_compare_values(move(values));
match_length_minimum += bracket_minimum_length;
return !has_error();
if (match(TokenType::LeftBracket)) {
consume();
if (!AbstractPosixParser::parse_bracket_expression(values, bracket_minimum_length))
return false;
consume(TokenType::RightBracket, Error::MismatchingBracket);
bytecode.insert_bytecode_compare_values(move(values));
match_length_minimum += bracket_minimum_length;
return !has_error();
}
return set_error(Error::InvalidPattern);
}
// =============================