class Parser::StaticEnvironment
def declare(name)
def declare(name) @variables.add(name.to_sym) self end
def declared?(name)
def declared?(name) @variables.include?(name.to_sym) end
def extend_dynamic
def extend_dynamic @stack.push(@variables) @variables = @variables.dup self end
def extend_static
def extend_static @stack.push(@variables) @variables = Set[] self end
def initialize
def initialize reset end
def reset
def reset @variables = Set[] @stack = [] end
def unextend
def unextend @variables = @stack.pop self end