Sha256: 0269d063805619bfddd681761fefec88f8a11d5d9de85a1d86952a3e519cc302
Contents?: true
Size: 986 Bytes
Versions: 1
Compression:
Stored size: 986 Bytes
Contents
module Ravensat class Node include Enumerable attr_reader :children def initialize @children = [] end # def each # yield(self) # @children.each do |child| # child.each {|c| yield(c)} # end # end def each case self when AndNode, OrNode @children.first.each{|c| yield(c)} yield(self) @children.last.each{|c| yield(c)} when NotNode yield(self) @children.first.each{|c| yield(c)} when VarNode yield(self) end end def &(object) AndNode.new(self, object) end def |(object) OrNode.new(self, object) end def to_s self.class.name end def cnf? @children.map(&:cnf?).reduce(:&) end def vars self.select{|node| node.is_a? VarNode}.uniq end def vars_size self.vars.size end def clauses_size self.count{|node| node.is_a? AndNode} + 1 end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ravensat-0.3.2 | lib/ravensat/ast/node.rb |