blob: 370aad494ddade3ca4cdd1304e2cf592a7aeebf6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
use rnix::{self, types::TypedNode};
use crate::errors::EvalResult;
pub fn interpret(code: String) -> EvalResult<String> {
let ast = rnix::parse(&code);
let errors = ast.errors();
if !errors.is_empty() {
todo!()
}
println!("{}", ast.root().dump());
let code = crate::compiler::compile(ast)?;
println!("code: {:?}", code);
let value = crate::vm::run_chunk(code)?;
Ok(format!("value: {} :: {}", value, value.type_of()))
}
|