class Parser::StaticEnvironment

Constants

ANONYMOUS_BLOCKARG
ANONYMOUS_KWRESTARG
ANONYMOUS_RESTARG
FORWARD_ARGS

Public Class Methods

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

Public Instance Methods

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

  self
end
declare_anonymous_blockarg() click to toggle source
# File lib/parser/static_environment.rb, line 58
def declare_anonymous_blockarg
  declare(ANONYMOUS_BLOCKARG)
end
declare_anonymous_kwrestarg() click to toggle source
# File lib/parser/static_environment.rb, line 74
def declare_anonymous_kwrestarg
  declare(ANONYMOUS_KWRESTARG)
end
declare_anonymous_restarg() click to toggle source
# File lib/parser/static_environment.rb, line 66
def declare_anonymous_restarg
  declare(ANONYMOUS_RESTARG)
end
declare_forward_args() click to toggle source
# File lib/parser/static_environment.rb, line 50
def declare_forward_args
  declare(FORWARD_ARGS)
end
declared?(name) click to toggle source
# File lib/parser/static_environment.rb, line 46
def declared?(name)
  @variables.include?(name.to_sym)
end
declared_anonymous_blockarg?() click to toggle source
# File lib/parser/static_environment.rb, line 62
def declared_anonymous_blockarg?
  declared?(ANONYMOUS_BLOCKARG)
end
declared_anonymous_kwrestarg?() click to toggle source
# File lib/parser/static_environment.rb, line 78
def declared_anonymous_kwrestarg?
  declared?(ANONYMOUS_KWRESTARG)
end
declared_anonymous_restarg?() click to toggle source
# File lib/parser/static_environment.rb, line 70
def declared_anonymous_restarg?
  declared?(ANONYMOUS_RESTARG)
end
declared_forward_args?() click to toggle source
# File lib/parser/static_environment.rb, line 54
def declared_forward_args?
  declared?(FORWARD_ARGS)
end
empty?() click to toggle source
# File lib/parser/static_environment.rb, line 82
def empty?
  @stack.empty?
end
extend_dynamic() click to toggle source
# File lib/parser/static_environment.rb, line 27
def extend_dynamic
  @stack.push(@variables)
  @variables = @variables.dup

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

  self
end
reset() click to toggle source
# File lib/parser/static_environment.rb, line 15
def reset
  @variables = Set[]
  @stack     = []
end
unextend() click to toggle source
# File lib/parser/static_environment.rb, line 34
def unextend
  @variables = @stack.pop

  self
end