1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#[macro_use] extern crate lazy_static; extern crate regex; pub mod convert; pub mod core; pub mod environment; pub mod eval; pub mod parse; pub mod tokenize; pub mod types; use types::RispResult; use parse::parse; use eval::eval; use environment::Environment; use core::create_core_environment; pub fn eval_risp(risp_code: &str) -> RispResult { eval_risp_for_env(risp_code, &mut create_core_environment()) } pub fn eval_risp_for_env(risp_code: &str, env: &mut Environment) -> RispResult { let ast = parse(risp_code)?; eval(ast, env) } pub fn eval_risp_script(risp_code: &str, env: &mut Environment) -> RispResult { let ast = parse(&("(do ".to_string() + risp_code + ")"))?; eval(ast, env) }