Update build chain, more build tooling

This commit is contained in:
2025-11-17 15:28:11 -07:00
parent 0687da9d99
commit f0a3bbe739
6 changed files with 197 additions and 201 deletions

View File

@@ -1,14 +1,36 @@
use std::io::{BufWriter, Write};
use compiler::Compiler;
use parser::Parser;
use safer_ffi::ffi_export;
use std::io::BufWriter;
use tokenizer::Tokenizer;
#[ffi_export]
fn compile_from_string(
input: &safer_ffi::string::String,
output: &mut safer_ffi::string::String,
) -> i32 {
todo!()
) -> bool {
let buffer = Vec::<u8>::new();
let mut writer = BufWriter::new(buffer);
let tokenizer = Tokenizer::from(input.to_string());
let parser = Parser::new(tokenizer);
let compiler = Compiler::new(parser, &mut writer);
let Ok(()) = compiler.compile() else {
return false;
};
let Ok(buffer) = writer.into_inner() else {
return false;
};
let Ok(output_string) = String::from_utf8(buffer) else {
return false;
};
*output = output_string.into();
return true;
}