12345678910111213141516171819 |
- RSpec.describe AST::Assignment do
- it 'reassigns an existing variable' do
- env = Environment.new
- AST::VariableDeclaration.new(AST::Identifier.new('x'), AST::Number.new(5.0))
- .execute(env)
- AST::Assignment.new(AST::Identifier.new('x'), AST::Number.new(6.0)).execute(
- env
- )
- expect(env.get('x').execute(env)).to eq(6.0)
- end
-
- it 'raises for an undeclared variable' do
- env = Environment.new
- expect {
- AST::Assignment.new(AST::Identifier.new('x'), AST::Number.new(6.0))
- .execute(env)
- }.to raise_error('Undefined variable x')
- end
- end
|