class Unparser::AST::Walker

Controlled AST walker walking the AST in deeth first search with pre order

Public Class Methods

call(node, controller = TAUTOLOGY, &block) click to toggle source

Call ast walker

@param [Parser::AST::Node] node

@return [self]

@api private

# File lib/unparser/ast.rb, line 175
def self.call(node, controller = TAUTOLOGY, &block)
  new(block, controller).call(node)
  self
end

Public Instance Methods

call(node) click to toggle source

Call walker with node

@param [Parser::AST::Node] node

@return [undefined]

@api private

# File lib/unparser/ast.rb, line 188
def call(node)
  return unless controller.call(node)

  block.call(node)
  node.children.each do |child|
    break unless child.instance_of?(Parser::AST::Node)

    call(child)
  end
end