class Dentaku::AST::Negation

def self.arity

def self.arity
  1
end

def self.precedence

def self.precedence
  40
end

def self.right_associative?

def self.right_associative?
  true
end

def dependencies(context = {})

def dependencies(context = {})
  @node.dependencies(context)
end

def initialize(node)

def initialize(node)
  @node = node
  unless valid_node?(node)
    raise NodeError.new(:numeric, node.type, :node),
          "#{self.class} requires numeric operands"
  end
end

def operator

def operator
  :*
end

def type

def type
  :numeric
end

def valid_node?(node)

def valid_node?(node)
  node && (node.dependencies.any? || node.type == :numeric)
end

def value(context = {})

def value(context = {})
  cast(@node.value(context)) * -1
end