diff options
author | John Hodge <tpg@mutabah.net> | 2015-03-10 15:37:02 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2015-03-10 15:37:02 +0800 |
commit | e71fccd80610bc05b0a90338b2b3beb9a0b94c22 (patch) | |
tree | 22162a90d614a200483bd0ceae629671ff798e41 /src/dump_as_rust.cpp | |
parent | 65558948954daaa2aec68b76814b043bf829d608 (diff) | |
download | mrust-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.cpp | 15 |
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"; } |