aboutsummaryrefslogtreecommitdiff
path: root/src/lexer.c
diff options
context:
space:
mode:
authorElis Eriksson <spelis@spelis.li>2026-07-01 22:39:28 +0200
committerElis Eriksson <spelis@spelis.li>2026-07-01 22:43:49 +0200
commitb2a53020c9e19b6eb7c6b18afb940bdcf0b604cf (patch)
tree454deffc4365e9d17969d377f13231c06e0c4674 /src/lexer.c
parent29766e048cabc8db71cb735c424e0fdfff468198 (diff)
downloadbfc-main.tar
bfc-main.tar.gz
bfc-main.tar.bz2
bfc-main.tar.lz
bfc-main.tar.xz
bfc-main.tar.zst
bfc-main.zip
remove utility (ivec, node_vec, str) headersHEADmain
also omit the lexer entirely, plus the parser type.
Diffstat (limited to 'src/lexer.c')
-rw-r--r--src/lexer.c62
1 files changed, 0 insertions, 62 deletions
diff --git a/src/lexer.c b/src/lexer.c
deleted file mode 100644
index b4d11eb..0000000
--- a/src/lexer.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include "all.h"
-#include "ivec.h"
-#include <stdlib.h>
-
-lexer_t lex_init(str *src) {
- lexer_t lx = {0};
-
- lx.src = src;
- lx.pos = 0;
- lx.tokens = (ivec){0};
-
- return lx;
-}
-
-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;
- break;
- case '-':
- tok = LEX_PDEC;
- break;
- case '>':
- tok = LEX_VINC;
- break;
- case '<':
- tok = LEX_VDEC;
- break;
- case '.':
- tok = LEX_OUT;
- break;
- case ',':
- tok = LEX_IN;
- break;
- case '[':
- tok = LEX_LB;
- break;
- case ']':
- tok = LEX_RB;
- break;
- 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;
-}