aboutsummaryrefslogtreecommitdiff
path: root/rust/src/bin/step0_repl.rs
blob: ba5f5fe08bc50ef96d60a334d7350acbe1330bf3 (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
26
extern crate mal;

use mal::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 = readline::mal_readline("user> ");
        match line { None => break, _ => () }
        println!("{}", print(eval(read(line.unwrap()))));
    }
}