Class: Code::Node::UnaryMinus

Inherits:
Code::Node show all
Defined in:
lib/code/node/unary_minus.rb

Instance Method Summary collapse

Constructor Details

#initialize(unary_minus) ⇒ UnaryMinus

Returns a new instance of UnaryMinus.



4
5
6
# File 'lib/code/node/unary_minus.rb', line 4

def initialize(unary_minus)
  @statement = ::Code::Node::Statement.new(unary_minus)
end

Instance Method Details

#evaluate(**args) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/code/node/unary_minus.rb', line 8

def evaluate(**args)
  object = @statement.evaluate(**args)

  case object
  when ::Code::Object::Integer
    ::Code::Object::Integer.new(-object.raw)
  when ::Code::Object::Decimal
    ::Code::Object::Decimal.new(-object.raw)
  else
    ::Code::Object::Nothing.new
  end
end