summaryrefslogtreecommitdiff
path: root/src/dump_as_rust.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2015-03-10 15:37:02 +0800
committerJohn Hodge <tpg@mutabah.net>2015-03-10 15:37:02 +0800
commite71fccd80610bc05b0a90338b2b3beb9a0b94c22 (patch)
tree22162a90d614a200483bd0ceae629671ff798e41 /src/dump_as_rust.cpp
parent65558948954daaa2aec68b76814b043bf829d608 (diff)
downloadmrust-e71fccd80610bc05b0a90338b2b3beb9a0b94c22.tar.gz
Rework macro handling to support correct repetitions
Diffstat (limited to 'src/dump_as_rust.cpp')
-rw-r--r--src/dump_as_rust.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/dump_as_rust.cpp b/src/dump_as_rust.cpp
index c9a64371..d28ab084 100644
--- a/src/dump_as_rust.cpp
+++ b/src/dump_as_rust.cpp
@@ -134,9 +134,20 @@ public:
for( auto& arm : n.m_arms )
{
m_os << indent();
- print_pattern( arm.first );
+ bool is_first = true;
+ for( const auto& pat : arm.m_patterns ) {
+ if(!is_first)
+ m_os << "|";
+ is_first = false;
+ print_pattern(pat);
+ }
+ if( arm.m_cond )
+ {
+ m_os << " if ";
+ AST::NodeVisitor::visit(arm.m_cond);
+ }
m_os << " => ";
- AST::NodeVisitor::visit(arm.second);
+ AST::NodeVisitor::visit(arm.m_code);
m_os << ",\n";
}