aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.c
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2019-03-20 18:53:47 +0100
committerdec05eba <dec05eba@protonmail.com>2020-07-25 14:36:46 +0200
commit5df7f92e715ba764ee57f65d78e73111492bb64c (patch)
tree87e25089674432d43d1ed8edad5c4c6ca3fd72b1 /src/tokenizer.c
parent071bdd4d6facb8786f089882d53c127e6163e3ce (diff)
Add pub keyword, more import stuff, optimize hash map
Hash map now stores hash of keys to reduce the number of hash operations. Positive: faster insert/get. Negative: more space required (to store usize hash).
Diffstat (limited to 'src/tokenizer.c')
-rw-r--r--src/tokenizer.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/tokenizer.c b/src/tokenizer.c
index 4403251..c59f80c 100644
--- a/src/tokenizer.c
+++ b/src/tokenizer.c
@@ -175,6 +175,9 @@ static CHECK_RESULT int __tokenizer_next(Tokenizer *self, Token *token) {
if(am_memeql(self->value.identifier.data, "var", 3)) {
*token = TOK_VAR;
return TOKENIZER_OK;
+ } else if(am_memeql(self->value.identifier.data, "pub", 3)) {
+ *token = TOK_PUB;
+ return TOKENIZER_OK;
}
break;
}
@@ -442,6 +445,9 @@ static BufferView tokenizer_expected_token_as_string(Token token) {
case TOK_COLON:
str = ":";
break;
+ case TOK_PUB:
+ str = "pub";
+ break;
}
return create_buffer_view(str, strlen(str));
}