gcc/rust/ChangeLog:
* expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::get_token_slice):
Add API to retrieve token slices when lexing macro expansions.
* expand/rust-macro-invoc-lexer.h: Declare `get_token_slice`.
// FIXME
gcc_unreachable ();
}
+
+std::vector<std::unique_ptr<AST::Token>>
+MacroInvocLexer::get_token_slice (size_t start_idx, size_t end_idx) const
+{
+ std::vector<std::unique_ptr<AST::Token>> slice;
+
+ rust_assert (end_idx < token_stream.size ());
+
+ for (size_t i = start_idx; i < end_idx; i++)
+ slice.emplace_back (token_stream[i]->clone_token ());
+
+ return slice;
+}
+
} // namespace Rust
size_t get_offs () const { return offs; }
+ std::vector<std::unique_ptr<AST::Token>>
+ get_token_slice (size_t start_idx, size_t end_idx) const;
+
private:
size_t offs;
std::vector<std::unique_ptr<AST::Token>> token_stream;