1 // support precompiled regexes in reader.rs
4 extern crate regex_macros;
7 use types::{MalVal,MalRet,MalError,ErrString,ErrMalVal};
15 fn read(str: String) -> MalRet {
20 fn eval(ast: MalVal) -> MalRet {
25 fn print(exp: MalVal) -> String {
29 fn rep(str: String) -> Result<String,MalError> {
33 //println!("read: {}", ast);
36 Ok(exp) => Ok(print(exp)),
44 let line = readline::mal_readline("user> ");
45 match line { None => break, _ => () }
46 match rep(line.unwrap()) {
47 Ok(str) => println!("{}", str),
48 Err(ErrMalVal(_)) => (), // Blank line
49 Err(ErrString(s)) => println!("Error: {}", s),