Update build chain, more build tooling
This commit is contained in:
30
src/lib.rs
30
src/lib.rs
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user