aboutsummaryrefslogtreecommitdiff
path: root/src/lexer.c
diff options
context:
space:
mode:
authorElis Eriksson <spelis@spelis.li>2026-06-19 21:39:16 +0200
committerElis Eriksson <spelis@spelis.li>2026-06-19 21:39:16 +0200
commitcbdca328495a772716f14b1e95a7ab7d6450cc27 (patch)
tree54b5c37a9a2d1b14e385e047980d7df99a56c331 /src/lexer.c
parent7ccae1c362a45b28f4fbf96da4f479730e4b382b (diff)
downloadbfc-cbdca328495a772716f14b1e95a7ab7d6450cc27.tar
bfc-cbdca328495a772716f14b1e95a7ab7d6450cc27.tar.gz
bfc-cbdca328495a772716f14b1e95a7ab7d6450cc27.tar.bz2
bfc-cbdca328495a772716f14b1e95a7ab7d6450cc27.tar.lz
bfc-cbdca328495a772716f14b1e95a7ab7d6450cc27.tar.xz
bfc-cbdca328495a772716f14b1e95a7ab7d6450cc27.tar.zst
bfc-cbdca328495a772716f14b1e95a7ab7d6450cc27.zip
Improve the shit
No longer turing complete No longer depends on libc (good thing) Codegen is now unreadable (because i want it to be) Remove a couple of unnecessary includes Output C code to out.c when compiling Why the fuck are you reading this?
Diffstat (limited to 'src/lexer.c')
-rw-r--r--src/lexer.c10
1 files changed, 0 insertions, 10 deletions
diff --git a/src/lexer.c b/src/lexer.c
index 4f1fcd0..b4d11eb 100644
--- a/src/lexer.c
+++ b/src/lexer.c
@@ -1,9 +1,6 @@
#include "all.h"
#include "ivec.h"
-#include <stdint.h>
-#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
lexer_t lex_init(str *src) {
lexer_t lx = {0};
@@ -17,10 +14,8 @@ lexer_t lex_init(str *src) {
void lex_run(lexer_t *lx) {
for (size_t i = 0; i < lx->src->length; i++) {
-
char c = lx->src->data[i];
lex_tok_e tok;
-
switch (c) {
case '+':
tok = LEX_PINC;
@@ -49,24 +44,19 @@ void lex_run(lexer_t *lx) {
default:
continue;
}
-
iv_push(&lx->tokens, tok);
}
-
iv_push(&lx->tokens, LEX_EOF);
}
void lex_free(lexer_t *lx) {
if (!lx)
return;
-
iv_free(&lx->tokens);
-
if (lx->src) {
free(lx->src->data);
free(lx->src);
}
-
lx->src = NULL;
lx->pos = 0;
}