12345678910111213141516171819202122232425 |
- 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
|