diff options
Diffstat (limited to 'src/parse/ttstream.hpp')
-rw-r--r-- | src/parse/ttstream.hpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/parse/ttstream.hpp b/src/parse/ttstream.hpp index 946cca5f..530a177b 100644 --- a/src/parse/ttstream.hpp +++ b/src/parse/ttstream.hpp @@ -15,14 +15,16 @@ class TTStream: public TokenStream { ::std::vector< ::std::pair<unsigned int, const TokenTree*> > m_stack; + ::std::shared_ptr<Span> m_parent_span; const Ident::Hygiene* m_hygiene_ptr = nullptr; public: - TTStream(const TokenTree& input_tt); + TTStream(Span parent, const TokenTree& input_tt); ~TTStream(); TTStream& operator=(const TTStream& x) { m_stack = x.m_stack; return *this; } Position getPosition() const override; + ::std::shared_ptr<Span> outerSpan() const override { return m_parent_span; } protected: Ident::Hygiene realGetHygiene() const override; @@ -38,7 +40,8 @@ class TTStreamO: ::std::vector< ::std::pair<unsigned int, TokenTree*> > m_stack; const Ident::Hygiene* m_hygiene_ptr = nullptr; public: - TTStreamO(TokenTree input_tt); + ::std::shared_ptr<Span> m_parent_span; + TTStreamO(Span parent, TokenTree input_tt); TTStreamO(TTStreamO&& x) = default; ~TTStreamO(); @@ -46,6 +49,7 @@ public: TTStreamO& operator=(TTStreamO&& x) = default; Position getPosition() const override; + ::std::shared_ptr<Span> outerSpan() const override { return m_parent_span; } protected: Ident::Hygiene realGetHygiene() const override; |