diff --git a/swig/libcclfunctionaloperator.i b/swig/libcclfunctionaloperator.i index 6694916efdd8c08c2ed3c045c5c559510ed35a63..900f204fa13cc252e449442b082e2414984ac14f 100644 --- a/swig/libcclfunctionaloperator.i +++ b/swig/libcclfunctionaloperator.i @@ -6,22 +6,29 @@ #include <libwccl/ops/operator.h> %} +%include "libcclvalue.i" +%include "libcclvariables.i" %include "libcclparsedexpression.i" + %include "std_string.i" +%include "boost_shared_ptr.i" namespace Wccl { class FunctionalOperator : public ParsedExpression { public: // virtual boost::shared_ptr<const Value> base_apply(const SentenceContext& sc) = 0; - // boost::shared_ptr<FunctionalOperator> clone_ptr() const; - // boost::shared_ptr<FunctionalOperator> clone_clean_ptr() const; + boost::shared_ptr<FunctionalOperator> clone_ptr() const; + boost::shared_ptr<FunctionalOperator> clone_clean_ptr() const; protected: - // explicit FunctionalOperator(const Variables& variables); - // FunctionalOperator* clone_internal() const = 0; + explicit FunctionalOperator(const Variables& variables); + FunctionalOperator* clone_internal() const = 0; }; } +%template (FunctionalOperatorSharedPtr) boost::shared_ptr<Wccl::FunctionalOperator>; + +using namespace boost; using namespace std; using namespace Wccl;