apply empty brackets removal until full fix

This commit is contained in:
2026-10-14 21:18:27 +03:00
parent f430b3616a
commit 1a258cd051
+21 -13
View File
@@ -792,20 +792,28 @@ static void remove_extra_brackets(std::vector<Expression::Token>& tv)
static void process_remove_empty_brackets(std::vector<Expression::Token>& tv) static void process_remove_empty_brackets(std::vector<Expression::Token>& tv)
{ {
pr_debug("Pre-process: remove empty brackets"); pr_debug("Pre-process: remove empty brackets");
for (int i = 0; i < tv.size() - 1; i++)
{
if (tv[i].t == Expression::Token::OPERATOR
&& tv[i].v.o == Expression::Token::OPA
&& tv[i+1].t == Expression::Token::OPERATOR
&& tv[i+1].v.o == Expression::Token::CPA)
{
std::vector<int> highlight;
highlight.emplace_back(i);
highlight.emplace_back(i+1);
Parser::print_math_vector(tv, highlight);
tv.erase(tv.begin() + i, tv.begin() + i + 2); int fix = -1;
i--; while (fix) {
fix = 0;
for (int i = 0; i < tv.size() - 1; i++)
{
if (tv[i].t == Expression::Token::OPERATOR
&& tv[i].v.o == Expression::Token::OPA
&& tv[i+1].t == Expression::Token::OPERATOR
&& tv[i+1].v.o == Expression::Token::CPA)
{
std::vector<int> highlight;
highlight.emplace_back(i);
highlight.emplace_back(i+1);
Parser::print_math_vector(tv, highlight);
tv.erase(tv.begin() + i, tv.begin() + i + 2);
i--;
fix++;
}
} }
} }
} }