From dd5586abec207dd4acd16d51ce0d392c03e5e957 Mon Sep 17 00:00:00 2001 From: nasr Date: Thu, 26 Mar 2026 22:35:30 +0100 Subject: feature(main): init feature(main): init --- source/fajr/fajr_main.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 source/fajr/fajr_main.c (limited to 'source/fajr/fajr_main.c') diff --git a/source/fajr/fajr_main.c b/source/fajr/fajr_main.c new file mode 100644 index 0000000..fc7be4a --- /dev/null +++ b/source/fajr/fajr_main.c @@ -0,0 +1,41 @@ +#define BASE_UNITY +#include "base/base_include.h" +#include "fajr_lexer/fajr_lexer.h" +#include "fajr_parser/fajr_parser.h" + +#include "fajr_lexer/fajr_lexer.c" +#include "fajr_parser/fajr_parser.c" + +int +main(int argc, char **argv) +{ + mem_arena *global = arena_create(GiB(1)); + if (argc < 2) { + print("Usage: program \n"); + return 1; + } + + i32 fd = open(argv[1], O_RDONLY); + if (fd < 0) { + print("Error: Cannot open file\n"); + return 1; + } + + u8 input[4096]; + u64 bytes_read; + bytes_read = read(fd, input, sizeof(input)); + + string8 buffer = {0}; + + buffer.data = input; + buffer.size = bytes_read; + + token_list *List = PushStruct(global, token_list); + concrete_syntax_tree *Tree = PushStruct(global, concrete_syntax_tree); + + Lex(&buffer, global, List); + Parse(global, List, Tree); + + close(fd); + return 0; +} -- cgit v1.3