Add simple and very rough interpreter
- Implemented an interpreter that - Only works with int64 values - Executes maths expressions - Declares and assigns variables in global table - Can use variables in expressions - Debug prints expression only statements - Can NOT use, or declare functions
This commit is contained in:
@@ -4,9 +4,9 @@ use plang2_lib::*;
|
||||
fn main() {
|
||||
|
||||
let code = r#"
|
||||
a = 54 * 3;
|
||||
b = 5;
|
||||
print("{}", a + b);
|
||||
let a = 5 * 3;
|
||||
let b = 5;
|
||||
(a + b * 3) / 5;
|
||||
"#;
|
||||
|
||||
let mut lexer = Lexer::new(code);
|
||||
@@ -16,8 +16,12 @@ fn main() {
|
||||
println!("Tokens: \n{}\n", tokens);
|
||||
|
||||
let mut parser = Parser::new(tokens);
|
||||
let expr = parser.parse().unwrap();
|
||||
let prog = parser.parse().unwrap();
|
||||
|
||||
println!("{:#?}", expr);
|
||||
println!("{:#?}\n\n", prog);
|
||||
|
||||
let mut interpreter = Interpreter::new(prog);
|
||||
|
||||
interpreter.run();
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user