Class: Nydp::Evaluator
Direct Known Subclasses
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#ns ⇒ Object
Returns the value of attribute ns.
-
#vm ⇒ Object
Returns the value of attribute vm.
Instance Method Summary collapse
- #compile_and_eval(expr) ⇒ Object
- #evaluate(expr) ⇒ Object
-
#initialize(vm, ns, name) ⇒ Evaluator
constructor
A new instance of Evaluator.
- #pre_compile(expr) ⇒ Object
Constructor Details
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
40 41 42 |
# File 'lib/nydp/runner.rb', line 40 def name @name end |
#ns ⇒ Object
Returns the value of attribute ns.
40 41 42 |
# File 'lib/nydp/runner.rb', line 40 def ns @ns end |
#vm ⇒ Object
Returns the value of attribute vm.
40 41 42 |
# File 'lib/nydp/runner.rb', line 40 def vm @vm end |
Instance Method Details
#compile_and_eval(expr) ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/nydp/runner.rb', line 50 def compile_and_eval expr begin vm.thread_with_expr Pair.new(Compiler.compile(expr, Nydp::NIL), Nydp::NIL) rescue StandardError => e raise Nydp::Error, "failed to eval #{expr.inspect}" end end |
#evaluate(expr) ⇒ Object
62 63 64 |
# File 'lib/nydp/runner.rb', line 62 def evaluate expr compile_and_eval(pre_compile(expr)) end |