From 2323ca6c9ec3c8ee76b9acf13745b80b92952a6a Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 18 Mar 2019 23:47:45 +0100 Subject: Add struct, import caching, binop ops etc --- src/tokenizer.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/tokenizer.c') diff --git a/src/tokenizer.c b/src/tokenizer.c index 5f6e59c..4403251 100644 --- a/src/tokenizer.c +++ b/src/tokenizer.c @@ -62,6 +62,7 @@ static Token tokenizer_skip_whitespace(Tokenizer *self) { ++self->index; } self->prev_index = self->index; + return TOK_NONE; } /* Returns -1 if end of string can't be found */ @@ -184,6 +185,13 @@ static CHECK_RESULT int __tokenizer_next(Tokenizer *self, Token *token) { } break; } + case 6: { + if(am_memeql(self->value.identifier.data, "struct", 6)) { + *token = TOK_STRUCT; + return TOKENIZER_OK; + } + break; + } } *token = TOK_IDENTIFIER; } else if(c == '"') { @@ -397,6 +405,9 @@ static BufferView tokenizer_expected_token_as_string(Token token) { case TOK_FN: str = "fn"; break; + case TOK_STRUCT: + str = "struct"; + break; case TOK_EQUALS: str = "="; break; @@ -431,9 +442,6 @@ static BufferView tokenizer_expected_token_as_string(Token token) { case TOK_COLON: str = ":"; break; - default: - str = "Unknown token"; - break; } return create_buffer_view(str, strlen(str)); } -- cgit v1.2.3