diff options
| author | Mel <einebeere@gmail.com> | 2021-10-18 21:28:52 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2021-10-18 21:28:52 +0200 |
| commit | 0881af52f16dc0b6a3900180cce5187d27373901 (patch) | |
| tree | c5501fdb4597bab6f1c24e0a138ff078794ebe4e /src/main.rs | |
| parent | 0f6f6068ebc33152f57658cf138df0622b44f6a2 (diff) | |
| download | rabbithole-0881af52f16dc0b6a3900180cce5187d27373901.tar.zst rabbithole-0881af52f16dc0b6a3900180cce5187d27373901.zip | |
Simple AST walker.
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 10 |
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); } |
