summaryrefslogtreecommitdiff
path: root/uscript/uscript.c
diff options
context:
space:
mode:
Diffstat (limited to 'uscript/uscript.c')
-rw-r--r--uscript/uscript.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/uscript/uscript.c b/uscript/uscript.c
new file mode 100644
index 0000000..5ec43a1
--- /dev/null
+++ b/uscript/uscript.c
@@ -0,0 +1,34 @@
+#include "uscript.h"
+
+#include <stdio.h>
+
+#include "dyn_arr.h"
+#include "lex.h"
+#include "val.h"
+#include "vm.h"
+#include "parser.h"
+
+void us_init(void)
+{
+ init_vm();
+}
+
+void us_deinit(void)
+{
+ deinit_vm();
+}
+
+void us_load_file(const char *file_path)
+{
+ char *file = read_file(file_path, NULL);
+ us_load_src(file);
+ mem_free(file);
+}
+
+void us_load_src(const char *src)
+{
+ struct us_proto *proto = compile("main", src);
+ if (!proto)
+ return;
+ us_exec(create_func(proto));
+}