Sha256: c4b06b423c0a162aee486306804b72eabc19915c2da73786052563293d6c7b06
Contents?: true
Size: 1.01 KB
Versions: 1884
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true module Parser class StaticEnvironment FORWARD_ARGS = :FORWARD_ARGS ANONYMOUS_BLOCKARG = :ANONYMOUS_BLOCKARG def initialize reset end def reset @variables = Set[] @stack = [] end def extend_static @stack.push(@variables) @variables = Set[] self end def extend_dynamic @stack.push(@variables) @variables = @variables.dup self end def unextend @variables = @stack.pop self end def declare(name) @variables.add(name.to_sym) self end def declared?(name) @variables.include?(name.to_sym) end def declare_forward_args declare(FORWARD_ARGS) end def declared_forward_args? declared?(FORWARD_ARGS) end def declare_anonymous_blockarg declare(ANONYMOUS_BLOCKARG) end def declared_anonymous_blockarg? declared?(ANONYMOUS_BLOCKARG) end def empty? @stack.empty? end end end
Version data entries
1,884 entries across 1,880 versions & 15 rubygems