Interpreter - Additional errors for variables

* Uninitialized variable usage
  * Redefining variables
This commit is contained in:
Emmanuel BENOîT 2023-01-01 10:52:29 +01:00
parent e92628a4eb
commit 81aef09c5b
2 changed files with 25 additions and 10 deletions
src/interpreter

View file

@ -77,11 +77,11 @@ impl ast::StmtNode {
name: &Token,
initializer: &Option<ast::ExprNode>,
) -> InterpreterResult {
let value = match initializer {
Some(expr) => expr.interprete(environment)?,
None => Value::Nil,
let variable = match initializer {
Some(expr) => Some(expr.interprete(environment)?),
None => None,
};
environment.borrow_mut().define(name.lexeme.clone(), value);
environment.borrow_mut().define(name, variable)?;
Ok(Value::Nil)
}