class Dentaku::AST::If

def self.max_param_count

def self.max_param_count
  3
end

def self.min_param_count

def self.min_param_count
  3
end

def args

def args
  [predicate, left, right]
end

def dependencies(context = {})

def dependencies(context = {})
  predicate.value(context) ? left.dependencies(context) : right.dependencies(context)
rescue Dentaku::Error, Dentaku::ArgumentError, Dentaku::ZeroDivisionError
  args.flat_map { |arg| arg.dependencies(context) }.uniq
end

def initialize(predicate, left, right)

def initialize(predicate, left, right)
  @predicate = predicate
  @left      = left
  @right     = right
end

def node_type

def node_type
  :condition
end

def type

def type
  left.type
end

def value(context = {})

def value(context = {})
  predicate.value(context) ? left.value(context) : right.value(context)
end