about summary refs log tree commit diff
path: root/src/main.rs
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2021-10-18 21:28:52 +0200
committerMel <einebeere@gmail.com>2021-10-18 21:28:52 +0200
commit0881af52f16dc0b6a3900180cce5187d27373901 (patch)
treec5501fdb4597bab6f1c24e0a138ff078794ebe4e /src/main.rs
parent0f6f6068ebc33152f57658cf138df0622b44f6a2 (diff)
downloadrabbithole-0881af52f16dc0b6a3900180cce5187d27373901.tar.zst
rabbithole-0881af52f16dc0b6a3900180cce5187d27373901.zip
Simple AST walker.
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index 3fa6bbf..1825af5 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,9 +1,11 @@
+mod interpret;
 mod lex;
 mod parse;
 
 use lex::lexer::Lexer;
 
-use crate::parse::parser::Parser;
+use interpret::walker::Walker;
+use parse::parser::Parser;
 
 fn main() {
     let source = "1 * 2 + 3 + (-1)";
@@ -11,5 +13,9 @@ fn main() {
     let lexer = Lexer::new(source);
     let mut parser = Parser::new(lexer);
 
-    println!("{}", parser.parse().expect("Failed parsing."));
+    let node = parser.parse().expect("Failed parsing.");
+
+    let walker = Walker::new();
+    let result = walker.walk(&node).expect("Failed interpreting.");
+    println!("{}", result);
 }