summaryrefslogtreecommitdiff
path: root/src/ast/dump.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast/dump.cpp')
-rw-r--r--src/ast/dump.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/ast/dump.cpp b/src/ast/dump.cpp
index 73b332c0..f1481abf 100644
--- a/src/ast/dump.cpp
+++ b/src/ast/dump.cpp
@@ -76,8 +76,28 @@ public:
m_os << n.m_name << "!( /* TODO: Macro TT */ )";
}
virtual void visit(AST::ExprNode_Asm& n) override {
- m_os << "asm!(";
- m_os << ")";
+ m_os << "asm!( \"" << n.m_text << "\"";
+ m_os << " :";
+ for(const auto& v : n.m_output)
+ {
+ m_os << " \"" << v.name << "\" (";
+ AST::NodeVisitor::visit(v.value);
+ m_os << "),";
+ }
+ m_os << " :";
+ for(const auto& v : n.m_input)
+ {
+ m_os << " \"" << v.name << "\" (";
+ AST::NodeVisitor::visit(v.value);
+ m_os << "),";
+ }
+ m_os << " :";
+ for(const auto& v : n.m_clobbers)
+ m_os << " \"" << v << "\",";
+ m_os << " :";
+ for(const auto& v : n.m_flags)
+ m_os << " \"" << v << "\",";
+ m_os << " )";
}
virtual void visit(AST::ExprNode_Flow& n) override {
m_expr_root = false;