Class: Nydp::Assignment
- Inherits:
-
Object
show all
- Includes:
- Helper
- Defined in:
- lib/nydp/assignment.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Helper
#cons, #list, #literal?, #pair?, #sym, #sym?
Constructor Details
#initialize(name, value, value_src) ⇒ Assignment
Returns a new instance of Assignment.
26
27
28
29
30
|
# File 'lib/nydp/assignment.rb', line 26
def initialize name, value, value_src
@value_src = value_src
n = AssignmentInstruction.new name
@instructions = cons(value, cons(n))
end
|
Class Method Details
.build(args, bindings) ⇒ Object
19
20
21
22
23
24
|
# File 'lib/nydp/assignment.rb', line 19
def self.build args, bindings
name = Compiler.compile args.car, bindings
raise "can't assign to #{name.inspect} : expression was #{args}" unless name.respond_to?(:assign)
value_expr = args.cdr.car
Assignment.new name, Compiler.compile(value_expr, bindings), value_expr
end
|
Instance Method Details
#execute(vm) ⇒ Object
36
37
38
|
# File 'lib/nydp/assignment.rb', line 36
def execute vm
vm.push_instructions @instructions, vm.peek_context
end
|
#to_s ⇒ Object
32
33
34
|
# File 'lib/nydp/assignment.rb', line 32
def to_s
"#assignment #{@instructions.cdr.car} #{@value_src}"
end
|