class Dentaku::AST::Combinator
def initialize(*)
def initialize(*) super unless valid_node?(left) raise NodeError.new(:logical, left.type, :left), "#{self.class} requires logical operands" end unless valid_node?(right) raise NodeError.new(:logical, right.type, :right), "#{self.class} requires logical operands" end end
def type
def type :logical end
def valid_node?(node)
def valid_node?(node) node && (node.dependencies.any? || node.type == :logical) end