use stryke::error::ErrorKind;
use stryke::interpreter::Interpreter;
use stryke::value::PerlValue;
pub fn eval(code: &str) -> PerlValue {
let program = stryke::parse(code).expect("parse failed");
let mut interp = Interpreter::new();
interp.execute(&program).expect("execution failed")
}
pub fn eval_string(code: &str) -> String {
eval(code).to_string()
}
pub fn eval_int(code: &str) -> i64 {
eval(code).to_int()
}
pub fn eval_err_kind(code: &str) -> ErrorKind {
let program = stryke::parse(code).expect("parse failed");
let mut interp = Interpreter::new();
interp.execute(&program).unwrap_err().kind
}
pub fn parse_err_kind(code: &str) -> ErrorKind {
stryke::parse(code).unwrap_err().kind
}