aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 629d39f..76486dd 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -47,6 +47,13 @@ pub fn run_file(path: &Path, print: bool, functions: Vec<(String, RustFunction)>
run(path, print, functions)
}
+pub fn run_string(source: &str, print: bool, functions: Vec<(String, RustFunction)>) -> Result<(), Vec<Error>> {
+ let mut path = std::env::temp_dir();
+ path.push(format!("test_{}.sy", rand::random::<u32>()));
+ std::fs::write(path.clone(), source).expect("Failed to write source to temporary file");
+ run(&path, print, functions)
+}
+
fn run(path: &Path, print: bool, functions: Vec<(String, RustFunction)>) -> Result<(), Vec<Error>> {
let sections = sectionizer::sectionize(path);
match compiler::Compiler::new(sections).compile("main", path, &functions) {