Class: Parser::StaticEnvironment
- Inherits:
-
Object
- Object
- Parser::StaticEnvironment
- Defined in:
- lib/parser/static_environment.rb
Constant Summary collapse
- FORWARD_ARGS =
:FORWARD_ARGS
- ANONYMOUS_BLOCKARG =
:ANONYMOUS_BLOCKARG
Instance Method Summary collapse
- #declare(name) ⇒ Object
- #declare_anonymous_blockarg ⇒ Object
- #declare_forward_args ⇒ Object
- #declared?(name) ⇒ Boolean
- #declared_anonymous_blockarg? ⇒ 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.
9 10 11 |
# File 'lib/parser/static_environment.rb', line 9 def initialize reset end |
Instance Method Details
#declare(name) ⇒ Object
38 39 40 41 42 |
# File 'lib/parser/static_environment.rb', line 38 def declare(name) @variables.add(name.to_sym) self end |
#declare_anonymous_blockarg ⇒ Object
56 57 58 |
# File 'lib/parser/static_environment.rb', line 56 def declare_anonymous_blockarg declare(ANONYMOUS_BLOCKARG) end |
#declare_forward_args ⇒ Object
48 49 50 |
# File 'lib/parser/static_environment.rb', line 48 def declare_forward_args declare(FORWARD_ARGS) end |
#declared?(name) ⇒ Boolean
44 45 46 |
# File 'lib/parser/static_environment.rb', line 44 def declared?(name) @variables.include?(name.to_sym) end |
#declared_anonymous_blockarg? ⇒ Boolean
60 61 62 |
# File 'lib/parser/static_environment.rb', line 60 def declared_anonymous_blockarg? declared?(ANONYMOUS_BLOCKARG) end |
#declared_forward_args? ⇒ Boolean
52 53 54 |
# File 'lib/parser/static_environment.rb', line 52 def declared_forward_args? declared?(FORWARD_ARGS) end |
#empty? ⇒ Boolean
64 65 66 |
# File 'lib/parser/static_environment.rb', line 64 def empty? @stack.empty? end |
#extend_dynamic ⇒ Object
25 26 27 28 29 30 |
# File 'lib/parser/static_environment.rb', line 25 def extend_dynamic @stack.push(@variables) @variables = @variables.dup self end |
#extend_static ⇒ Object
18 19 20 21 22 23 |
# File 'lib/parser/static_environment.rb', line 18 def extend_static @stack.push(@variables) @variables = Set[] self end |
#reset ⇒ Object
13 14 15 16 |
# File 'lib/parser/static_environment.rb', line 13 def reset @variables = Set[] @stack = [] end |
#unextend ⇒ Object
32 33 34 35 36 |
# File 'lib/parser/static_environment.rb', line 32 def unextend @variables = @stack.pop self end |