Skip to content
Snippets Groups Projects
Commit 7aab4b0a authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Clear symbol tables when `exit` is explicitly called in scripts

parent 5c5c509c
Branches
No related tags found
No related merge requests found
......@@ -39,6 +39,15 @@
#include <unordered_map>
#include <variant>
void
clear_symbol_tables(std::unique_ptr<ASTNode>& node)
{
for (auto& child : node->children) {
clear_symbol_tables(child);
}
node->m_symbol_table->clearValues();
}
void
parser(const std::string& filename)
{
......@@ -96,6 +105,7 @@ parser(const std::string& filename)
}
catch (language::Exit& e) {
ExecutionStatManager::getInstance().setExitCode(e.code());
clear_symbol_tables(root_node);
}
root_node->m_symbol_table->clearValues();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment