From 5f3f13a1b5a6cb4d69c7a958760d466be2b72f2a Mon Sep 17 00:00:00 2001 From: Baitinq Date: Sun, 18 May 2025 10:48:30 +0200 Subject: Feature: Add support for continue statement --- src/bootstrap/tokenizer.src | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'src/bootstrap/tokenizer.src') diff --git a/src/bootstrap/tokenizer.src b/src/bootstrap/tokenizer.src index dee4a40..ff2f5a7 100644 --- a/src/bootstrap/tokenizer.src +++ b/src/bootstrap/tokenizer.src @@ -6,7 +6,6 @@ extern atoi = (*i8) => i64; import "!stdlib.src"; let file_size = 0; -let file = 0; let buf = 0; @@ -16,7 +15,7 @@ let tokens = 0; let tokens_len = 0; let read_file = (filename: *i8) => *i8 { - file = fopen(filename, "r"); + let file = fopen(filename, "r"); fseek(file, 0, 2); file_size = ftell(file); @@ -27,6 +26,8 @@ let read_file = (filename: *i8) => *i8 { let bytes_read = fread(buf, 1, file_size, file); (*(buf + bytes_read)) = '\0'; + fclose(file); + return buf; }; @@ -135,19 +136,18 @@ let tokenizer_consume_until_condition = (condition: (i8) => bool) => *i8 { offset = offset + 1; offset = offset + 1; - }; - /* else / continue */ - if !(c == '\\') { - if condition(c) { - return res; - }; - - (*(res + (offset - start))) = c; - (*(res + (offset - start + 1))) = '\0'; + continue; + }; - offset = offset + 1; + if condition(c) { + return res; }; + + (*(res + (offset - start))) = c; + (*(res + (offset - start + 1))) = '\0'; + + offset = offset + 1; }; return null; @@ -379,7 +379,6 @@ let tokenizer_init = (filename: *i8) => i64 { let tokenizer_deinit = () => i64 { free(tokens); free(buf); - fclose(file); return 0; }; -- cgit 1.4.1