diff options
Diffstat (limited to 'src/dump_as_rust.cpp')
-rw-r--r-- | src/dump_as_rust.cpp | 11 |
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; + } } |