aboutsummaryrefslogtreecommitdiff
path: root/src/lexer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lexer.c')
-rw-r--r--src/lexer.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lexer.c b/src/lexer.c
index b61f750..74cc298 100644
--- a/src/lexer.c
+++ b/src/lexer.c
@@ -180,6 +180,20 @@ token_t* lexer_get_def_const(lexer_t* lexer) {
lexer_next(lexer);
return token_init(TOKEN_DEFINE_CONST, "=>");
} else {
+ fputs("Unknown variable state.", stderr);
+ exit(1);
+ }
+}
+
+token_t* lexer_get_def_var(lexer_t* lexer) {
+ lexer_pass(lexer);
+
+ if (lexer_next(lexer), lexer->c == '=') {
+ return lexer_get_def_const(lexer);
+ } else if (lexer_next(lexer), lexer->c == '-') {
+ return lexer_get_def_mut(lexer);
+ } else {
+ fputs("Unknown variable state.", stderr);
exit(1);
}
}
@@ -191,6 +205,7 @@ token_t* lexer_get_def_mut(lexer_t* lexer) {
lexer_next(lexer);
return token_init(TOKEN_DEFINE_MUT, "->");
} else {
+ fputs("Unknown variable state.", stderr);
exit(1);
}
}