aboutsummaryrefslogtreecommitdiff
path: root/rust/src/step0_repl.rs
blob: ac9cf24d0dea3332c74eaf4164c1b9c2ad6e008a (plain)
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
use readline::mal_readline;
mod readline;

// read
fn read(str: String) -> String {
    str
}

// eval
fn eval(ast: String) -> String {
    ast
}

// print
fn print(exp: String) -> String {
    exp
}

fn main() {
    loop {
        let line = mal_readline("user> ");
        match line { None => break, _ => () }
        println!("{}", print(eval(read(line.unwrap()))));
    }
}