class Dentaku::TokenMatcher

def initialize(categories = nil, values = nil, children = [])

def initialize(categories = nil, values = nil, children = [])
  # store categories and values as hash to optimize key lookup, h/t @jan-mangs
  @categories = [categories].compact.flatten.each_with_object({}) { |c, h| h[c] = 1 }
  @values     = [values].compact.flatten.each_with_object({}) { |v, h| h[v] = 1 }
  @children   = children.compact
  @invert     = false
  @min = 1
  @max = 1
  @range = (@min..@max)
end