diff options
| author | _ov4 <ov4@ov4.org> | 2026-09-17 08:54:32 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-09-17 08:54:32 +0000 |
| commit | 64717eba9de6e3dc60e47c322b5f1c1632ed3b21 (patch) | |
| tree | 6d6f17f9610104cc4a548c8b0de0a7cf32048730 /src | |
| parent | cf117c70277fab4d3de170b55fe8248d9cc36927 (diff) | |
add quotation mark support
allow arguments of a command to be quoted
Diffstat (limited to 'src')
| -rw-r--r-- | src/lexer/token.cc | 9 | ||||
| -rw-r--r-- | src/util/string.cc | 10 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/lexer/token.cc b/src/lexer/token.cc index 26ad1f2..b9b8242 100644 --- a/src/lexer/token.cc +++ b/src/lexer/token.cc @@ -12,7 +12,7 @@ using namespace std; // remove this -constexpr bool TOKEN_DEBUG = false; +constexpr bool TOKEN_DEBUG = true; namespace ov4 { @@ -35,7 +35,8 @@ bool T_lexer::is_single_symbol(char c) { string s = " "; s[0] = c; - if (symbol_property.contains(s)) + // quotation marks are treated as text + if (symbol_property.contains(s) && c != '\'' && c != '\"') return true; return false; } @@ -119,8 +120,8 @@ void T_lexer::token_push(const string &push_s, int bracket_depth, bool force_tex else { if constexpr (TOKEN_DEBUG) loggerln("token_push: adding text"); - if (force_text) - trimmed = trim(trimmed, "\'\""); + // if (force_text) + // trimmed = trim(trimmed, "\'\""); tmp.token_type = TEXT; tmp.text = trimmed; } diff --git a/src/util/string.cc b/src/util/string.cc index c486a4f..9fad804 100644 --- a/src/util/string.cc +++ b/src/util/string.cc @@ -1,5 +1,7 @@ #include "util/string.h" +#include <print> + using namespace std; namespace ov4 @@ -40,4 +42,12 @@ std::string safe_str(const char *s, const char *fallback) return (s != nullptr) ? s : fallback; } +void print_str_hex(const std::string &s) +{ + for (unsigned char c : s) + { + print("{:02X} ", c); + } +} + } |
