class Parser::StaticEnvironment

Constants

ANONYMOUS_BLOCKARG_INHERITED
ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE
ANONYMOUS_KWRESTARG_INHERITED
ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE
ANONYMOUS_RESTARG_INHERITED
ANONYMOUS_RESTARG_IN_CURRENT_SCOPE
FORWARD_ARGS

Public Class Methods

new() click to toggle source
# File lib/parser/static_environment.rb, line 17
def initialize
  reset
end

Public Instance Methods

declare(name) click to toggle source
# File lib/parser/static_environment.rb, line 55
def declare(name)
  @variables.add(name.to_sym)

  self
end
declare_anonymous_blockarg() click to toggle source

Anonymous blockarg

# File lib/parser/static_environment.rb, line 77
def declare_anonymous_blockarg
  declare(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE)
end
declare_anonymous_kwrestarg() click to toggle source

Anonymous kwresarg

# File lib/parser/static_environment.rb, line 113
def declare_anonymous_kwrestarg
  declare(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE)
end
declare_anonymous_restarg() click to toggle source

Anonymous restarg

# File lib/parser/static_environment.rb, line 95
def declare_anonymous_restarg
  declare(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE)
end
declare_forward_args() click to toggle source

Forward args

# File lib/parser/static_environment.rb, line 67
def declare_forward_args
  declare(FORWARD_ARGS)
end
declared?(name) click to toggle source
# File lib/parser/static_environment.rb, line 61
def declared?(name)
  @variables.include?(name.to_sym)
end
declared_anonymous_blockarg?() click to toggle source
# File lib/parser/static_environment.rb, line 81
def declared_anonymous_blockarg?
  declared?(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE) || declared?(ANONYMOUS_BLOCKARG_INHERITED)
end
declared_anonymous_blockarg_in_current_scpe?() click to toggle source
# File lib/parser/static_environment.rb, line 85
def declared_anonymous_blockarg_in_current_scpe?
  declared?(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE)
end
declared_anonymous_kwrestarg?() click to toggle source
# File lib/parser/static_environment.rb, line 117
def declared_anonymous_kwrestarg?
  declared?(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE) || declared?(ANONYMOUS_KWRESTARG_INHERITED)
end
declared_anonymous_kwrestarg_in_current_scope?() click to toggle source
# File lib/parser/static_environment.rb, line 121
def declared_anonymous_kwrestarg_in_current_scope?
  declared?(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE)
end
declared_anonymous_restarg?() click to toggle source
# File lib/parser/static_environment.rb, line 99
def declared_anonymous_restarg?
  declared?(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE) || declared?(ANONYMOUS_RESTARG_INHERITED)
end
declared_anonymous_restarg_in_current_scope?() click to toggle source
# File lib/parser/static_environment.rb, line 103
def declared_anonymous_restarg_in_current_scope?
  declared?(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE)
end
declared_forward_args?() click to toggle source
# File lib/parser/static_environment.rb, line 71
def declared_forward_args?
  declared?(FORWARD_ARGS)
end
empty?() click to toggle source
# File lib/parser/static_environment.rb, line 129
def empty?
  @stack.empty?
end
extend_dynamic() click to toggle source
# File lib/parser/static_environment.rb, line 33
def extend_dynamic
  @stack.push(@variables)
  @variables = @variables.dup
  if @variables.delete(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE)
    @variables.add(ANONYMOUS_BLOCKARG_INHERITED)
  end
  if @variables.delete(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE)
    @variables.add(ANONYMOUS_RESTARG_INHERITED)
  end
  if @variables.delete(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE)
    @variables.add(ANONYMOUS_KWRESTARG_INHERITED)
  end

  self
end
extend_static() click to toggle source
# File lib/parser/static_environment.rb, line 26
def extend_static
  @stack.push(@variables)
  @variables = Set[]

  self
end
parent_has_anonymous_blockarg?() click to toggle source
# File lib/parser/static_environment.rb, line 89
def parent_has_anonymous_blockarg?
  @stack.any? { |variables| variables.include?(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE) }
end
parent_has_anonymous_kwrestarg?() click to toggle source
# File lib/parser/static_environment.rb, line 125
def parent_has_anonymous_kwrestarg?
  @stack.any? { |variables| variables.include?(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE) }
end
parent_has_anonymous_restarg?() click to toggle source
# File lib/parser/static_environment.rb, line 107
def parent_has_anonymous_restarg?
  @stack.any? { |variables| variables.include?(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE) }
end
reset() click to toggle source
# File lib/parser/static_environment.rb, line 21
def reset
  @variables = Set[]
  @stack     = []
end
unextend() click to toggle source
# File lib/parser/static_environment.rb, line 49
def unextend
  @variables = @stack.pop

  self
end