aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tokenizer.c')
-rw-r--r--src/tokenizer.c14
1 files changed, 11 insertions, 3 deletions
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));
}