inline void doDispatch( const PVal &val1, const PVal &val2, const PVal &self, const PMaybe &lib, PMaybe &tunnel ) { PMaybe vlib1(nullptr); PMaybe vlib2(nullptr); PMaybe func(nullptr); libGet<id_dispatch>(val1, lib, vlib1); libGet<id_dispatch>(val2, vlib1, vlib2); libGet(self, vlib2, func); func.call(_pair(_quote(val1), _quote(val2), self->getType()), lib, tunnel); }
inline void doCast(const PMaybe &lib, PMaybe &val) { PMaybe func(nullptr); libGet<id_cast, type>(PVal(val), lib, func); PMaybe caller(_ptr(_quote(PVal(val)), val->getType())); // TODO simplify val = nullptr; func.call<true>(caller, lib, val); }
String VB::__addText(Const String& text) { return String("fpStringBuilder.Append(\"") & _quote(text,quotedParam_) & "\")\n"; }
String CSharp::__addText(Const String& text) { return String("fpText+=\"") & _quote(text) & "\";\n"; }