Module: Carbon::Compiler::Visitor::Base::InstanceMethods

Defined in:
lib/carbon/compiler/visitor/base.rb

Overview

The instance methods.

Instance Method Summary collapse

Instance Method Details

#accept(node, *params) ⇒ Object



22
23
24
# File 'lib/carbon/compiler/visitor/base.rb', line 22

def accept(node, *params)
  visit(node, *params)
end

#visit(node, *params) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/carbon/compiler/visitor/base.rb', line 26

def visit(node, *params)
  return unless node
  begin
    action = self.class.matches.fetch(node.class)
  rescue KeyError
    visit_missing(node, *params)
  end
  public_send(action, node, *params)
end

#visit_ignore(node) ⇒ Object



40
41
42
# File 'lib/carbon/compiler/visitor/base.rb', line 40

def visit_ignore(node)
  node
end

#visit_missing(node) ⇒ Object



36
37
38
# File 'lib/carbon/compiler/visitor/base.rb', line 36

def visit_missing(node, *)
  fail ArgumentError, "Cannot visit #{node.class}"
end