diff options
| author | Baitinq <[email protected]> | 2025-06-11 00:16:17 +0200 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-06-11 00:16:17 +0200 |
| commit | fa92a157746ae17f295d31b7a047dfeb99624a13 (patch) | |
| tree | 71e469e67a70df15542d873ebe223654def6111b /src/bootstrap/main.src | |
| parent | stdlib: Remove println (diff) | |
| download | interpreter-fa92a157746ae17f295d31b7a047dfeb99624a13.tar.gz interpreter-fa92a157746ae17f295d31b7a047dfeb99624a13.tar.bz2 interpreter-fa92a157746ae17f295d31b7a047dfeb99624a13.zip | |
Diffstat (limited to 'src/bootstrap/main.src')
| -rw-r--r-- | src/bootstrap/main.src | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/src/bootstrap/main.src b/src/bootstrap/main.src deleted file mode 100644 index 571cc03..0000000 --- a/src/bootstrap/main.src +++ /dev/null @@ -1,69 +0,0 @@ -extern fopen = (*i8, *i8) => *i8; -extern fgets = (*i8, i64, *i8) => void; -extern feof = (*i8) => bool; -extern fseek = (*i8, i64, i64) => i64; -extern ftell = (*i8) => i64; -extern fread = (*i8, i64, i64, *i8) => i64; -extern fclose = (*i8) => *i8; - -import "!stdlib.src"; -import "!mem.src"; - -let slice = struct { - data: *void, - data_len: i64, -}; - -import "tokenizer.src"; -import "parser.src"; -import "codegen.src"; - -let read_file = (filename: *i8, alloc: *arena) => slice { - let file = fopen(filename, "r"); - - fseek(file, 0, 2); - let file_size = ftell(file); - fseek(file, 0, 0); - - let buf = cast(*i8, arena_alloc(alloc, file_size + 1)); - - let bytes_read = fread(buf, 1, file_size, file); - (*(buf + cast(*i8, bytes_read))) = '\0'; - - fclose(file); - - let sl = slice{}; - sl.data = cast(*void, buf); - sl.data_len = file_size; - return sl; -}; - -let main = (argc: i64, argv: **i8) => i64 { - if argc < 2 { - printf("Need filename!\n"); - return 1; - }; - - let filename = *(argv + cast(**i8, 1)); - - printf("%s\n", filename); - - let alloc = arena_init(999999999); - - let file = read_file(filename, alloc); - - let t = tokenizer_init(alloc, file); - let ts = tokenizer_tokenize(t); - - let p = parser_init(cast(*token, ts.data), ts.data_len, alloc); - let ast = parse(p); - - let c = codegen_init(alloc); - let res = codegen_generate(c, ast); - let res = codegen_compile(c); - codegen_deinit(c); - - arena_free(alloc); - - return 0; -}; |