class Parser::StaticEnvironment

Constants

ANONYMOUS_BLOCKARG
FORWARD_ARGS

Public Class Methods

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

Public Instance Methods

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

  self
end
declare_anonymous_blockarg() click to toggle source
# File lib/parser/static_environment.rb, line 55
def declare_anonymous_blockarg
  declare(ANONYMOUS_BLOCKARG)
end
declare_forward_args() click to toggle source
# File lib/parser/static_environment.rb, line 47
def declare_forward_args
  declare(FORWARD_ARGS)
end
declared?(name) click to toggle source
# File lib/parser/static_environment.rb, line 43
def declared?(name)
  @variables.include?(name.to_sym)
end
declared_anonymous_blockarg?() click to toggle source
# File lib/parser/static_environment.rb, line 59
def declared_anonymous_blockarg?
  declared?(ANONYMOUS_BLOCKARG)
end
declared_forward_args?() click to toggle source
# File lib/parser/static_environment.rb, line 51
def declared_forward_args?
  declared?(FORWARD_ARGS)
end
empty?() click to toggle source
# File lib/parser/static_environment.rb, line 63
def empty?
  @stack.empty?
end
extend_dynamic() click to toggle source
# File lib/parser/static_environment.rb, line 24
def extend_dynamic
  @stack.push(@variables)
  @variables = @variables.dup

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

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

  self
end