1 #include "rust-macro-invoc-lexer.h"
6 MacroInvocLexer::peek_token (int n
)
8 if ((offs
+ n
) >= token_stream
.size ())
9 return Token::make (END_OF_FILE
, Location ());
11 return token_stream
.at (offs
+ n
)->get_tok_ptr ();
14 // Advances current token to n + 1 tokens ahead of current position.
16 MacroInvocLexer::skip_token (int n
)
22 MacroInvocLexer::split_current_token (TokenId new_left
__attribute__ ((unused
)),
24 __attribute__ ((unused
)))
30 std::vector
<std::unique_ptr
<AST::Token
>>
31 MacroInvocLexer::get_token_slice (size_t start_idx
, size_t end_idx
) const
33 std::vector
<std::unique_ptr
<AST::Token
>> slice
;
35 rust_assert (end_idx
< token_stream
.size ());
37 for (size_t i
= start_idx
; i
< end_idx
; i
++)
38 slice
.emplace_back (token_stream
[i
]->clone_token ());