summaryrefslogtreecommitdiff
path: root/src/parse/interpolated_fragment.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/interpolated_fragment.cpp')
-rw-r--r--src/parse/interpolated_fragment.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/parse/interpolated_fragment.cpp b/src/parse/interpolated_fragment.cpp
index e907978b..f0d7c19c 100644
--- a/src/parse/interpolated_fragment.cpp
+++ b/src/parse/interpolated_fragment.cpp
@@ -3,6 +3,7 @@
#include <iostream>
#include "interpolated_fragment.hpp"
#include <ast/ast.hpp>
+#include <ast/expr.hpp> // For definition of ExprNode
InterpolatedFragment::~InterpolatedFragment()
{
@@ -22,6 +23,9 @@ InterpolatedFragment::~InterpolatedFragment()
case InterpolatedFragment::META:
delete reinterpret_cast<AST::MetaItem*>(m_ptr);
break;
+ case InterpolatedFragment::ITEM:
+ delete reinterpret_cast<AST::Named<AST::Item>*>(m_ptr);
+ break;
}
}
}
@@ -48,6 +52,11 @@ InterpolatedFragment::InterpolatedFragment(AST::MetaItem v):
m_ptr( new AST::MetaItem(mv$(v)) )
{
}
+InterpolatedFragment::InterpolatedFragment(::AST::Named<::AST::Item> v):
+ m_type( InterpolatedFragment::ITEM ),
+ m_ptr( new ::AST::Named<::AST::Item>( mv$(v) ) )
+{
+}
InterpolatedFragment::InterpolatedFragment(TokenTree v):
m_type( InterpolatedFragment::TT ),
m_ptr( new TokenTree(mv$(v)) )
@@ -99,6 +108,9 @@ InterpolatedFragment::InterpolatedFragment(TypeRef v):
case InterpolatedFragment::META:
os << "meta[" << *reinterpret_cast<AST::MetaItem*>(x.m_ptr) << "]";
break;
+ case InterpolatedFragment::ITEM:
+ os << "item[?]";
+ break;
}
return os;
}