summaryrefslogtreecommitdiff
path: root/src/lexer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lexer.c')
-rw-r--r--src/lexer.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lexer.c b/src/lexer.c
index 3f6948a..56e24af 100644
--- a/src/lexer.c
+++ b/src/lexer.c
@@ -97,10 +97,18 @@ lexer_tokenize_name(lexer_t *lexer, token_t *token)
static void
lexer_token_process_keyword(token_t *token)
{
+ if (string_view_eq(string_view_from_str("let"), token->value)) {
+ token->kind = TOKEN_KEYWORD_LET;
+ return;
+ }
if (string_view_eq(string_view_from_str("return"), token->value)) {
token->kind = TOKEN_KEYWORD_RETURN;
return;
}
+ if (string_view_eq(string_view_from_str("fn"), token->value)) {
+ token->kind = TOKEN_KEYWORD_FN;
+ return;
+ }
}
void
@@ -318,6 +326,10 @@ token_kind_to_str(token_kind_t kind)
return "=";
case TOKEN_KEYWORD_RETURN:
return "return";
+ case TOKEN_KEYWORD_FN:
+ return "fn";
+ case TOKEN_KEYWORD_LET:
+ return "let";
case TOKEN_EOF:
return "TOKEN_EOF";
case TOKEN_UNKNOWN: