apply empty brackets removal until full fix
This commit is contained in:
+21
-13
@@ -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)
|
||||
{
|
||||
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);
|
||||
i--;
|
||||
int fix = -1;
|
||||
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++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user