diff options
Diffstat (limited to 'src/parse/tokentree.cpp')
-rw-r--r-- | src/parse/tokentree.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/parse/tokentree.cpp b/src/parse/tokentree.cpp index 8fad6386..25e8ad44 100644 --- a/src/parse/tokentree.cpp +++ b/src/parse/tokentree.cpp @@ -11,7 +11,7 @@ TokenTree TokenTree::clone() const { if( m_subtrees.size() == 0 ) { - return TokenTree(m_tok.clone()); + return TokenTree(m_hygiene, m_tok.clone()); } else { ::std::vector< TokenTree> ents; @@ -21,3 +21,22 @@ TokenTree TokenTree::clone() const return TokenTree( m_hygiene, mv$(ents) ); } } + +::std::ostream& operator<<(::std::ostream& os, const TokenTree& tt) +{ + os << tt.m_hygiene; + if( tt.m_subtrees.size() == 0 ) + return os << tt.m_tok; + else { + os << "TT(["; + bool first = true; + for(const auto& i : tt.m_subtrees) { + if(!first) + os << ", "; + os << i; + first = false; + } + os << "])"; + return os; + } +} |