class SyntaxTree::Search
def scan(root)
def scan(root) return to_enum(__method__, root) unless block_given? queue = [root] until queue.empty? node = queue.shift next unless node yield node if pattern.call(node) queue += node.child_nodes end end
def scan(root) return to_enum(__method__, root) unless block_given? queue = [root] until queue.empty? node = queue.shift next unless node yield node if pattern.call(node) queue += node.child_nodes end end