From 8bc359fed6fafa96859ecfdfc45e57cb5dd626cf Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Wed, 7 Oct 2026 17:35:04 +0300 Subject: [PATCH] fix bugs and simplify code --- src/syntaxer.cpp | 30 ++++-------------------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/src/syntaxer.cpp b/src/syntaxer.cpp index 940d232..6efb778 100644 --- a/src/syntaxer.cpp +++ b/src/syntaxer.cpp @@ -13,7 +13,7 @@ static void highlight_issue(const std::vector& tv, const int int start = location - 7 < 0 ? 0 : location - 7; int finish = location + 7 > tv.size() - 1 ? tv.size() - 1 : location + 7; - std::cout << " >>> "; + std::cout << " >>> "; for (int i = start; i <= finish; i++) { @@ -80,11 +80,11 @@ int check_syntax(std::vector& tv) case Expression::Token::CPA: break; case Expression::Token::OPA: - pr_warn("Expected value or closing bracket at token 0, got opening bracket"); + pr_warn("Expected value or closing bracket at token " << tv.size() - 1 << ", got opening bracket"); problem_cnt++; break; default: - pr_warn("Expected value or closing bracket at token 0, got operator"); + pr_warn("Expected value or closing bracket at token " << tv.size() - 1 << ", got operator"); problem_cnt++; break; } @@ -812,29 +812,7 @@ Expression::TreeNode ov_to_tree(const std::vector tv, const s { Expression::TreeNode root; std::queue> queued_ops; - - const Expression::Operation &root_op = ov[ov.size() - 1]; - root.o = root_op.o; - - switch (root_op.tl) - { - case Expression::Operation::DERIVED: - queued_ops.emplace(root.l = new Expression::TreeNode(), root_op.il); - break; - case Expression::Operation::NORMAL: - root.l = new Expression::TreeNode(tv[root_op.il]); - break; - } - - switch (root_op.tr) - { - case Expression::Operation::DERIVED: - queued_ops.emplace(root.r = new Expression::TreeNode(), root_op.ir); - break; - case Expression::Operation::NORMAL: - root.r = new Expression::TreeNode(tv[root_op.ir]); - break; - } + queued_ops.emplace(&root, ov.size() - 1); while (queued_ops.size()) {