Printer: Pass along readably flag during recursion

This commit is contained in:
Riyyi
2023-04-02 11:05:01 +02:00
parent a60859acc4
commit 90d6ff7d18
+3 -3
View File
@@ -78,7 +78,7 @@ void Printer::printImpl(ASTNodePtr node, bool print_readably)
m_previous_node_is_list = true; m_previous_node_is_list = true;
auto nodes = std::static_pointer_cast<List>(node)->nodes(); auto nodes = std::static_pointer_cast<List>(node)->nodes();
for (auto node : nodes) { for (auto node : nodes) {
printImpl(node); printImpl(node, print_readably);
m_previous_node_is_list = false; m_previous_node_is_list = false;
} }
m_print += ')'; m_print += ')';
@@ -90,7 +90,7 @@ void Printer::printImpl(ASTNodePtr node, bool print_readably)
m_previous_node_is_list = true; m_previous_node_is_list = true;
auto nodes = std::static_pointer_cast<Vector>(node)->nodes(); auto nodes = std::static_pointer_cast<Vector>(node)->nodes();
for (auto node : nodes) { for (auto node : nodes) {
printImpl(node); printImpl(node, print_readably);
m_previous_node_is_list = false; m_previous_node_is_list = false;
} }
m_print += ']'; m_print += ']';
@@ -103,7 +103,7 @@ void Printer::printImpl(ASTNodePtr node, bool print_readably)
auto elements = std::static_pointer_cast<HashMap>(node)->elements(); auto elements = std::static_pointer_cast<HashMap>(node)->elements();
for (auto it = elements.begin(); it != elements.end(); ++it) { for (auto it = elements.begin(); it != elements.end(); ++it) {
m_print += format("{} ", it->first.front() == 0x7f ? ":" + it->first.substr(1) : it->first); // 127 m_print += format("{} ", it->first.front() == 0x7f ? ":" + it->first.substr(1) : it->first); // 127
printImpl(it->second); printImpl(it->second, print_readably);
if (isLast(it, elements)) { if (isLast(it, elements)) {
m_print += ' '; m_print += ' ';