summaryrefslogtreecommitdiff
path: root/source/engine.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/engine.c')
-rw-r--r--source/engine.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/source/engine.c b/source/engine.c
new file mode 100644
index 0000000..8f701e3
--- /dev/null
+++ b/source/engine.c
@@ -0,0 +1,46 @@
1#define BASE_UNITY
2#include "base/base_include.h"
3
4#include <stdio.h>
5
6#include "csv_parser.h"
7#include "lexer.h"
8
9#include "lexer.c"
10#include "csv_parser.c"
11
12int main(int c, char **v)
13{
14 if(c < 2) return -999;
15
16 b32 running = 0;
17
18 mem_arena *global_arena = arena_create(MiB(30));
19 csv_table *global_table = PushStruct(global_arena, csv_table);
20
21 string8 buffer = load_file(v[1]);
22
23 print("database engine in nasr");
24
25 for(;;)
26 {
27 if (running)
28 {
29 // TODO(nasr): check for return key
30 {
31 u8 line_buffer[256] = {};
32
33 s64 codepoint = os_read(STDIN_FD, line_buffer, 256);
34 unused(codepoint);
35
36 read_csv(buffer);
37 token *tokens = tokenize_csv(buffer, global_arena);
38 global_table = parse_csv(tokens, global_table);
39 }
40
41 sleep(1);
42 }
43 }
44
45 return 0;
46}