module Solargraph::SourceMap::NodeProcessor

def self.process node, region = Region.new, pins = [], locals = []

Returns:
  • (Array(Array, Array)) -

Parameters:
  • pins (Array) --
  • region (Region) --
  • node (Parser::AST::Node) --
def self.process node, region = Region.new, pins = [], locals = []
  if pins.empty?
    pins.push Pin::Namespace.new(
      location: region.source.location,
      name: ''
    )
  end
  return [pins, locals] unless node.is_a?(Parser::AST::Node)
  klass = @@processors[node.type] || BeginNode
  processor = klass.new(node, region, pins, locals)
  processor.process
  [processor.pins, processor.locals]
end

def register type, cls

Returns:
  • (Class) -

Parameters:
  • cls (Class) --
  • type (Symbol) --
def register type, cls
  @@processors[type] = cls
end