Class: Parser::StaticEnvironment
- Inherits:
-
Object
- Object
- Parser::StaticEnvironment
- Defined in:
- lib/parser/static_environment.rb
Constant Summary collapse
- FORWARD_ARGS =
:FORWARD_ARGS
Instance Method Summary collapse
- #declare(name) ⇒ Object
- #declare_forward_args ⇒ Object
- #declared?(name) ⇒ Boolean
- #declared_forward_args? ⇒ Boolean
- #empty? ⇒ Boolean
- #extend_dynamic ⇒ Object
- #extend_static ⇒ Object
-
#initialize ⇒ StaticEnvironment
constructor
A new instance of StaticEnvironment.
- #reset ⇒ Object
- #unextend ⇒ Object
Constructor Details
#initialize ⇒ StaticEnvironment
Returns a new instance of StaticEnvironment.
8 9 10 |
# File 'lib/parser/static_environment.rb', line 8 def initialize reset end |
Instance Method Details
#declare(name) ⇒ Object
37 38 39 40 41 |
# File 'lib/parser/static_environment.rb', line 37 def declare(name) @variables.add(name.to_sym) self end |
#declare_forward_args ⇒ Object
47 48 49 |
# File 'lib/parser/static_environment.rb', line 47 def declare_forward_args declare(FORWARD_ARGS) end |
#declared?(name) ⇒ Boolean
43 44 45 |
# File 'lib/parser/static_environment.rb', line 43 def declared?(name) @variables.include?(name.to_sym) end |
#declared_forward_args? ⇒ Boolean
51 52 53 |
# File 'lib/parser/static_environment.rb', line 51 def declared_forward_args? declared?(FORWARD_ARGS) end |
#empty? ⇒ Boolean
55 56 57 |
# File 'lib/parser/static_environment.rb', line 55 def empty? @stack.empty? end |
#extend_dynamic ⇒ Object
24 25 26 27 28 29 |
# File 'lib/parser/static_environment.rb', line 24 def extend_dynamic @stack.push(@variables) @variables = @variables.dup self end |
#extend_static ⇒ Object
17 18 19 20 21 22 |
# File 'lib/parser/static_environment.rb', line 17 def extend_static @stack.push(@variables) @variables = Set[] self end |
#reset ⇒ Object
12 13 14 15 |
# File 'lib/parser/static_environment.rb', line 12 def reset @variables = Set[] @stack = [] end |
#unextend ⇒ Object
31 32 33 34 35 |
# File 'lib/parser/static_environment.rb', line 31 def unextend @variables = @stack.pop self end |