Class: Nydp::SymbolLookup
- Inherits:
-
Object
- Object
- Nydp::SymbolLookup
show all
- Extended by:
- Helper
- Defined in:
- lib/nydp/symbol_lookup.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Helper
cons, list, literal?, pair?, sym, sym?
Constructor Details
#initialize(expression) ⇒ SymbolLookup
Returns a new instance of SymbolLookup.
9
10
11
|
# File 'lib/nydp/symbol_lookup.rb', line 9
def initialize expression
@expression = expression
end
|
Instance Attribute Details
#expression ⇒ Object
Returns the value of attribute expression.
7
8
9
|
# File 'lib/nydp/symbol_lookup.rb', line 7
def expression
@expression
end
|
Class Method Details
.build(name, bindings) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/nydp/symbol_lookup.rb', line 21
def self.build name, bindings
depth = 0
while Nydp.NIL.isnt? bindings
here = bindings.car
if here.key? name
return new ContextSymbol.new(depth, name)
else
depth += 1
bindings = bindings.cdr
end
end
new name
end
|
Instance Method Details
#assign(value, context = nil) ⇒ Object
17
18
19
|
# File 'lib/nydp/symbol_lookup.rb', line 17
def assign value, context=nil
@expression.assign value, context
end
|
#execute(vm) ⇒ Object
13
14
15
|
# File 'lib/nydp/symbol_lookup.rb', line 13
def execute vm
vm.push_arg expression.value vm.peek_context
end
|
#inspect ⇒ Object
39
40
41
|
# File 'lib/nydp/symbol_lookup.rb', line 39
def inspect
"#lookup_symbol:#{@expression.inspect}"
end
|
#to_s ⇒ Object
35
36
37
|
# File 'lib/nydp/symbol_lookup.rb', line 35
def to_s
"#lookup:#{expression}:"
end
|