Start implementing variable lookup

This commit is contained in:
greg 2016-01-21 01:16:01 -08:00
parent d3207ad890
commit 044f534ac5
1 changed files with 7 additions and 2 deletions

View File

@ -7,7 +7,9 @@ struct Varmap {
impl Varmap { impl Varmap {
fn new() -> Varmap { fn new() -> Varmap {
Varmap { map: HashMap::new() } let mut map = HashMap::new();
map.insert("a".to_string(), Expression::Number(10.0));
Varmap { map: map }
} }
fn add_binding(&mut self, var: String, value: Expression) { fn add_binding(&mut self, var: String, value: Expression) {
@ -97,7 +99,10 @@ impl Evaluator {
match expression { match expression {
e@StringLiteral(_) => e, e@StringLiteral(_) => e,
e@Number(_) => e, e@Number(_) => e,
Variable(var) => Number(20.0), Variable(var) => {
let expr = self.varmap.lookup_binding(var).unwrap();
expr.clone()
},
_ => unimplemented!(), _ => unimplemented!(),
} }