Class: ZunScript::ZScope
- Inherits:
-
Object
- Object
- ZunScript::ZScope
- Defined in:
- lib/zunscript/scope.rb
Direct Known Subclasses
Instance Method Summary collapse
- #find(identifier) ⇒ Object
- #first_with(identifier) ⇒ Object
- #get(identifier) ⇒ Object
-
#initialize(parent = nil) ⇒ ZScope
constructor
A new instance of ZScope.
- #inspect ⇒ Object
- #owner(identifier) ⇒ Object
- #set(identifier, value) ⇒ Object
- #set_local(identifier, value) ⇒ Object
Constructor Details
#initialize(parent = nil) ⇒ ZScope
Returns a new instance of ZScope.
3 4 5 6 |
# File 'lib/zunscript/scope.rb', line 3 def initialize parent = nil @parent = parent @hash = Hash.new end |
Instance Method Details
#find(identifier) ⇒ Object
16 17 18 |
# File 'lib/zunscript/scope.rb', line 16 def find identifier return VariableReference.new (owner identifier), identifier end |
#first_with(identifier) ⇒ Object
8 9 10 |
# File 'lib/zunscript/scope.rb', line 8 def first_with identifier return @hash.has_key? identifier ? self : (@parent.first_with identifier) end |
#get(identifier) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/zunscript/scope.rb', line 20 def get identifier if @hash.has_key? identifier return @hash[identifier] end return @parent.get identifier #return @hash.has_key? identifier ? @hash[identifier] : (@parent.get identifier) end |
#inspect ⇒ Object
36 37 38 |
# File 'lib/zunscript/scope.rb', line 36 def inspect @hash.to_s end |
#owner(identifier) ⇒ Object
28 29 30 |
# File 'lib/zunscript/scope.rb', line 28 def owner identifier (first_with identifier) or self end |
#set(identifier, value) ⇒ Object
32 33 34 |
# File 'lib/zunscript/scope.rb', line 32 def set identifier, value (owner identifier).set_local identifier, value end |
#set_local(identifier, value) ⇒ Object
12 13 14 |
# File 'lib/zunscript/scope.rb', line 12 def set_local identifier, value return @hash[identifier] = value end |