Class: ZunScript::ZScope

Inherits:
Object
  • Object
show all
Defined in:
lib/zunscript/scope.rb

Direct Known Subclasses

ZRootScope

Instance Method Summary collapse

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

#inspectObject



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