about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/bootstrap/main.src44
-rw-r--r--src/bootstrap/tokenizer.src52
2 files changed, 50 insertions, 46 deletions
diff --git a/src/bootstrap/main.src b/src/bootstrap/main.src
index 508002d..7ff2643 100644
--- a/src/bootstrap/main.src
+++ b/src/bootstrap/main.src
@@ -12,53 +12,13 @@ import "!stdlib.src";
 
 import "tokenizer.src";
 
-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 main = (argc: i64, argv: **i8) => i64 {
 	let filename = *(argv + 1);
 
 	println("%s", filename);
 
-	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;
-	};
-
-	free(buf);
-	fclose(file);
-
-	println("TEST: %d", test());
+	tokenizer_init(filename);
+	tokenizer_deinit();
 
 	return 0;
 };
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;
 };