about summary refs log tree commit diff
path: root/src/bootstrap/tokenizer.src
diff options
context:
space:
mode:
authorBaitinq <[email protected]>2025-05-11 15:56:53 +0200
committerBaitinq <[email protected]>2025-05-11 15:58:08 +0200
commitfa800a7be598bbffc22024c80e9206dc139a81a4 (patch)
tree8f7dcc398ef08746e0f48a7bce820167acff2132 /src/bootstrap/tokenizer.src
parentCodegen: Fix: Don't change underlying type if dereference (diff)
downloadinterpreter-fa800a7be598bbffc22024c80e9206dc139a81a4.tar.gz
interpreter-fa800a7be598bbffc22024c80e9206dc139a81a4.tar.bz2
interpreter-fa800a7be598bbffc22024c80e9206dc139a81a4.zip
Bootstrap: cleanup
Diffstat (limited to '')
-rw-r--r--src/bootstrap/tokenizer.src52
1 files changed, 48 insertions, 4 deletions
diff --git a/src/bootstrap/tokenizer.src b/src/bootstrap/tokenizer.src
index 751a0ac..38899aa 100644
--- a/src/bootstrap/tokenizer.src
+++ b/src/bootstrap/tokenizer.src
@@ -1,6 +1,50 @@
-extern printf = (*i8, varargs) => void;
+import "!stdlib.src";
 
-let test = () => i64 {
-	printf("HELLO\n");
-	return 2;
+let file_size = 0;
+let file = 0;
+let buf = 0;
+
+let read_file = (filename: *i8) => *i8 {
+	file = fopen(filename, "r");
+
+	fseek(file, 0, 2);
+	file_size = ftell(file);
+	fseek(file, 0, 0);
+
+	buf = malloc(file_size + 1);
+
+	let bytes_read = fread(buf, 1, file_size, file);
+	(*(buf + bytes_read)) = '\0';
+
+	return buf;
+};
+
+let tokenizer_init = (filename: *i8) => i64 {
+	let buf = read_file(filename);
+
+	println("File size: %d", file_size);
+
+	println("%s", buf);
+
+	let i = 0;
+	while i < file_size {
+		let c = (*(buf + i));
+
+		if c == '}' {
+			println("BRACE!");
+		};
+
+		println("C: %c", c);
+
+		i = i + 1;
+	};
+
+	return 0;
+};
+
+let tokenizer_deinit = () => i64 {
+	free(buf);
+	fclose(file);
+
+	return 0;
 };