1
0
Fork 0

Finalize interpreter for now

This commit is contained in:
Vili Sinervä 2025-02-03 23:04:36 +02:00
parent f4b208dfde
commit 38dd3f523b
No known key found for this signature in database
GPG key ID: DF8FEAF54EFAC996
3 changed files with 146 additions and 104 deletions

View file

@ -19,8 +19,24 @@ impl<'source> SymTab<'source> {
}
pub fn new_global() -> SymTab<'source> {
let locals = HashMap::from([
("+", Value::Func(Value::add)),
("*", Value::Func(Value::mul)),
("-", Value::Func(Value::sub)),
("/", Value::Func(Value::div)),
("%", Value::Func(Value::rem)),
("==", Value::Func(Value::eq)),
("!=", Value::Func(Value::neq)),
("<", Value::Func(Value::lt)),
("<=", Value::Func(Value::le)),
(">", Value::Func(Value::gt)),
(">=", Value::Func(Value::ge)),
("not", Value::Func(Value::not)),
("neg", Value::Func(Value::neg)),
]);
SymTab {
locals: HashMap::new(),
locals,
parent: None,
}
}