patterns: Merged in new pattern language refactor (#1533)

This commit is contained in:
Nik
2024-02-04 14:03:42 +01:00
committed by GitHub
parent f60986de8e
commit 5e5714baeb
5 changed files with 47 additions and 44 deletions

View File

@@ -162,22 +162,19 @@ namespace hex::ui {
char c = filter[i];
if (i < filter.size() - 1 && c == '=' && filter[i + 1] == '=') {
try {
pl::core::Lexer lexer;
pl::core::Lexer lexer;
auto source = filter.substr(i + 2);
auto tokens = lexer.lex(filter.substr(i + 2), filter.substr(i + 2));
pl::api::Source source(filter.substr(i + 2));
auto tokens = lexer.lex(&source);
if (!tokens.has_value() || tokens->size() != 2)
return std::nullopt;
auto literal = std::get_if<pl::core::Token::Literal>(&tokens->front().value);
if (literal == nullptr)
return std::nullopt;
result.value = *literal;
} catch (pl::core::err::LexerError &) {
if (!tokens.isOk() || tokens.unwrap().size() != 2)
return std::nullopt;
}
auto literal = std::get_if<pl::core::Token::Literal>(&tokens.unwrap().front().value);
if (literal == nullptr)
return std::nullopt;
result.value = *literal;
break;
} else if (c == '.') {
result.path.emplace_back();