From d69427039bc962f28edf826badbfe77ffbcac37f Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sat, 5 Sep 2026 15:43:51 +0000 Subject: bracket + trim + pivot --- include/parser/token.h | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'include/parser/token.h') diff --git a/include/parser/token.h b/include/parser/token.h index 1896b3f..5b65d67 100644 --- a/include/parser/token.h +++ b/include/parser/token.h @@ -21,6 +21,27 @@ public: int bracket_depth = 0; }; +size_t find_non_space_previous(string s, size_t i) +{ + size_t len = s.size(), backup = i; + i--; // skip current char + for ( ; i < len; i--) + if (s[i] != ' ') + return i+1; // because region is [x, y) + + return backup; +} + +string trim_space(const string &s) +{ + size_t b = s.find_first_not_of(" \t"); + if (b == string::npos) + return ""; + size_t e = s.find_last_not_of(" \t"); + return s.substr(b, e - b + 1); +} + + bool is_symbol(char c) { if (c == '&' || c == '|' || c == '(' || c == ')') @@ -104,8 +125,11 @@ void token_push(string s, size_t current, size_t prev, int bracket_depth, bool i return; } + string trimed = trim_space(sub); + if (trimed == "") return; + tmp.token_type = TEXT; - tmp.text = sub; + tmp.text = trimed; token.push_back(tmp); } -- cgit v1.3.1-4-g156e