dsp-asm/lexer_iterator.cpp
Zack Buhman e48bd182dc keyword: add more keywords
This also concedes that a lexer that returns std::vector is probably
the simplest API for the parser, but I will still continue to consider
alternatives.
2023-08-17 08:14:07 +00:00

36 lines
535 B
C++

#include "lexer.hpp"
#include "token.hpp"
namespace dsp {
struct lexer_iterator_t
{
token_t previous_token;
token_t current_token;
lexer_t& lexer;
lexer_iterator_t(lexer_t& lexer)
: lexer(lexer), previous_token(lexer.scan_token()), current_token(previous_token)
{
}
token_t& advance()
{
previous_token = current_token;
current_token = lexer.scan_token();
return previous_token;
}
token_t& peek()
{
return current_token;
}
token_t& previous()
{
return previous_token;
}
};
}