Interpreter - Additional errors for variables
* Uninitialized variable usage * Redefining variables
This commit is contained in:
parent
e92628a4eb
commit
81aef09c5b
2 changed files with 25 additions and 10 deletions
src/interpreter
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue