From b501094dc95934bc742acf4890ddf4729cf94a49 Mon Sep 17 00:00:00 2001 From: Baitinq Date: Tue, 8 Apr 2025 00:26:45 +0200 Subject: Bootstrap: start bootstrapping implementation --- src/bootstrap/main.src | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/bootstrap/main.src (limited to 'src') diff --git a/src/bootstrap/main.src b/src/bootstrap/main.src new file mode 100644 index 0000000..546fa4a --- /dev/null +++ b/src/bootstrap/main.src @@ -0,0 +1,34 @@ +extern printf = (*i8, varargs) => void; +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; +extern malloc = (i64) => *i8; +extern free = (*i8) => void; + +let main = (argc: i64, argv: **i8) => i64 { + let filename = *(argv + 1); + + printf("%s\n", filename); + + let file = fopen("./src/bootstrap/main.src", "r"); + + fseek(file, 0, 2); + let file_size = ftell(file); + fseek(file, 0, 0); + + let buf = malloc(file_size + 1); + + let bytes_read = fread(buf, 1, file_size, file); + (*(buf + bytes_read)) = '\0'; + + printf("%s", buf); + + free(buf); + fclose(file); + + return 0; +}; -- cgit 1.4.1