diff options
| author | hachem <im@hachem.wtf> | 2026-09-04 07:04:49 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-09-04 07:04:49 +0200 |
| commit | dcb23f8b4b889061e96d43949d570581469cab84 (patch) | |
| tree | 2931979a4ba011104cc1931f3d7c30b02538f14b /src/ui/macro_expander.cpp | |
| parent | d3a1b908fd3b0c47da2c33c16d18ebeb00da3b97 (diff) | |
refactor: slight cleanup
Diffstat (limited to 'src/ui/macro_expander.cpp')
| -rw-r--r-- | src/ui/macro_expander.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/ui/macro_expander.cpp b/src/ui/macro_expander.cpp index f4588c3..a2ca62c 100644 --- a/src/ui/macro_expander.cpp +++ b/src/ui/macro_expander.cpp @@ -3,6 +3,7 @@ #include <algorithm> #include <cctype> #include <fstream> +#include <iterator> namespace Hsdbg { @@ -111,15 +112,17 @@ namespace Hsdbg "^=", "++", "--", ".*", }; - for (const std::string_view op : multis) + const auto multi = std::ranges::find_if(multis, [&](std::string_view op) { - if (text.compare(at, op.size(), op) == 0) - { - at += op.size(); - token.kind = PpKind::Punct; - token.text = std::string(op); - return token; - } + return text.compare(at, op.size(), op) == 0; + }); + + if (multi != std::end(multis)) + { + at += multi->size(); + token.kind = PpKind::Punct; + token.text = std::string(*multi); + return token; } token.kind = PpKind::Punct; @@ -508,8 +511,11 @@ namespace Hsdbg ArgList expanded_args; expanded_args.reserve(args.size()); - for (const std::vector<PpToken>& arg : args) - expanded_args.push_back(expand_full(table, arg)); + std::ranges::transform(args, std::back_inserter(expanded_args), + [&](const std::vector<PpToken>& arg) + { + return expand_full(table, arg); + }); std::vector<PpToken> repl = substitute(*def, args, expanded_args); |
