diff options
author | John Hodge <tpg@ucc.asn.au> | 2017-10-29 12:44:01 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2017-10-29 12:44:01 +0800 |
commit | 94ad750f1727a977b5e5e2b094527e6c449df41d (patch) | |
tree | 53dfa784a3beb7dc2d60b13aa6678dfe6b9c82e8 /src/parse/ttstream.hpp | |
parent | 69311c5199292cd4b00b5c82fe8096d93b7e6465 (diff) | |
download | mrust-94ad750f1727a977b5e5e2b094527e6c449df41d.tar.gz |
Expand - Add parent spans to TTStream[O]
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; |