summaryrefslogtreecommitdiff
path: root/src/parse/tokentree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/tokentree.cpp')
-rw-r--r--src/parse/tokentree.cpp21
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;
+ }
+}