From 8e732f3087e6626fa22d0b6656be909d40bbe265 Mon Sep 17 00:00:00 2001 From: Jonathan Turner Date: Wed, 1 Jul 2009 19:47:12 +0000 Subject: [PATCH] Allow more general function dispatch --- chaiscript/chaiscript_eval.hpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/chaiscript/chaiscript_eval.hpp b/chaiscript/chaiscript_eval.hpp index 8e21e2e..755bb80 100644 --- a/chaiscript/chaiscript_eval.hpp +++ b/chaiscript/chaiscript_eval.hpp @@ -289,7 +289,7 @@ namespace chaiscript case (Token_Type::Fun_Call) : { dispatchkit::Param_List_Builder plb; - std::vector > fn; + //std::vector > fn; dispatchkit::Dispatch_Engine::Stack prev_stack = ss.get_stack(); dispatchkit::Dispatch_Engine::Stack new_stack; @@ -301,9 +301,12 @@ namespace chaiscript } } try { - fn = ss.get_function(node->children[0]->text); + dispatchkit::Boxed_Value fn = eval_token(ss, node->children[0]); + //fn = ss.get_function(node->children[0]->text); ss.set_stack(new_stack); - retval = dispatch(fn, plb); + //retval = dispatch(fn, plb); + //retval = dispatch + retval = (*dispatchkit::boxed_cast >(fn))(plb); ss.set_stack(prev_stack); } catch(EvalError &ee) {