class Riml::Compiler::EstablishScopeVisitor

Public Class Methods

new(options) click to toggle source
# File lib/riml/compiler.rb, line 522
def initialize(options)
  @scope = options[:scope]
  @nested_function = options[:nested_function]
end

Public Instance Methods

establish_scope(node) click to toggle source
# File lib/riml/compiler.rb, line 531
def establish_scope(node)
  if node.scope && !@nested_function
    node.scope = node.scope.merge @scope
  elsif node.scope
    node.scope = @scope.merge_parent_function(node.scope)
  else
    node.scope = @scope
  end
  walk_node!(node)
end
visit(node) click to toggle source
# File lib/riml/compiler.rb, line 527
def visit(node)
  establish_scope(node)
end