aboutsummaryrefslogtreecommitdiff
path: root/src/lexer.c
diff options
context:
space:
mode:
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;
-}