summaryrefslogtreecommitdiff
path: root/src/dump_as_rust.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dump_as_rust.cpp')
-rw-r--r--src/dump_as_rust.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/dump_as_rust.cpp b/src/dump_as_rust.cpp
index f72b2df5..357795c5 100644
--- a/src/dump_as_rust.cpp
+++ b/src/dump_as_rust.cpp
@@ -487,6 +487,7 @@ public:
case AST::ExprNode_BinOp::ADD: m_os << "+"; break;
case AST::ExprNode_BinOp::SUB: m_os << "-"; break;
case AST::ExprNode_BinOp::RANGE: m_os << ".."; break;
+ case AST::ExprNode_BinOp::RANGE_INC: m_os << "..."; break;
case AST::ExprNode_BinOp::PLACE_IN: m_os << "<-"; break;
}
m_os << " ";
@@ -504,11 +505,19 @@ public:
case AST::ExprNode_UniOp::BOX: m_os << "box "; break;
case AST::ExprNode_UniOp::REF: m_os << "&"; break;
case AST::ExprNode_UniOp::REFMUT: m_os << "&mut "; break;
+ case AST::ExprNode_UniOp::QMARK: break;
}
if( IS(*n.m_value, AST::ExprNode_BinOp) )
- m_os << " ";
+ m_os << "(";
AST::NodeVisitor::visit(n.m_value);
+ if( IS(*n.m_value, AST::ExprNode_BinOp) )
+ m_os << ")";
+ switch(n.m_type)
+ {
+ case AST::ExprNode_UniOp::QMARK: m_os << "?"; break;
+ default: break;
+ }
}