From b493ff5aa3f5167b4bf8c3d97885025f10fdb0bc Mon Sep 17 00:00:00 2001 From: Baitinq Date: Thu, 10 Apr 2025 22:41:36 +0200 Subject: Bootstrap: Iterate chars --- src/bootstrap/main.src | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) (limited to 'src/bootstrap/main.src') diff --git a/src/bootstrap/main.src b/src/bootstrap/main.src index 518612b..b953e3d 100644 --- a/src/bootstrap/main.src +++ b/src/bootstrap/main.src @@ -9,23 +9,48 @@ extern fclose = (*i8) => *i8; extern malloc = (i64) => *i8; extern free = (*i8) => void; -let main = (argc: i64, argv: **i8) => i64 { - let filename = *(argv + 1); +let file_size = 0; +let file = 0; +let buf = 0; - printf("%s\n", filename); +let read_file = (filename: *i8) => *i8 { + file = fopen(filename, "r"); - let file = fopen(filename, "r"); - fseek(file, 0, 2); - let file_size = ftell(file); + file_size = ftell(file); fseek(file, 0, 0); - let buf = malloc(file_size + 1); + buf = malloc(file_size + 1); let bytes_read = fread(buf, 1, file_size, file); (*(buf + bytes_read)) = '\0'; - printf("%s", buf); + return buf; +}; + +let main = (argc: i64, argv: **i8) => i64 { + let filename = *(argv + 1); + + printf("%s\n", filename); + + let buf = read_file(filename); + + printf("File size: %d\n", file_size); + + printf("%s", buf); + + let i = 0; + while i < file_size { + let c = (*(buf + i)); + + if c == '}' { + printf("BRACE!\n"); + }; + + printf("C: %c\n", c); + + i = i + 1; + }; free(buf); fclose(file); -- cgit 1.4.1