Some work
This commit is contained in:
9
token.h
9
token.h
@@ -50,6 +50,9 @@ typedef struct {
|
||||
SrcPos pos;
|
||||
const char *src;
|
||||
size_t src_len;
|
||||
|
||||
bool has_buffer;
|
||||
Token buffer;
|
||||
} TokenStream;
|
||||
|
||||
typedef struct {
|
||||
@@ -66,6 +69,7 @@ inline static void token_stream_init(TokenStream *stream, const char *src,
|
||||
stream->pos.line_offset = 0;
|
||||
stream->src = src;
|
||||
stream->src_len = src_len;
|
||||
stream->has_buffer = false;
|
||||
}
|
||||
|
||||
inline static bool token_stream_is_eof(TokenStream *stream) {
|
||||
@@ -73,8 +77,13 @@ inline static bool token_stream_is_eof(TokenStream *stream) {
|
||||
}
|
||||
|
||||
// return true on success, false on error
|
||||
bool token_stream_peek(TokenStream *restrict stream, Token *restrict out,
|
||||
ParseError *restrict error);
|
||||
bool token_stream_next(TokenStream *restrict stream, Token *restrict out,
|
||||
ParseError *restrict error);
|
||||
bool token_stream_discard(TokenStream *restrict stream,
|
||||
ParseError *restrict error);
|
||||
|
||||
static inline void parse_error_clear(ParseError *error) {
|
||||
error->set = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user