about summary refs log tree commit diff
path: root/src/main.rs
blob: 1825af5eb8624b27d9c598c2e90e443f3e3f2623 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mod interpret;
mod lex;
mod parse;

use lex::lexer::Lexer;

use interpret::walker::Walker;
use parse::parser::Parser;

fn main() {
    let source = "1 * 2 + 3 + (-1)";

    let lexer = Lexer::new(source);
    let mut parser = Parser::new(lexer);

    let node = parser.parse().expect("Failed parsing.");

    let walker = Walker::new();
    let result = walker.walk(&node).expect("Failed interpreting.");
    println!("{}", result);
}