#ifndef SWIG_LIBWCCL_FUNCTIONALOPERATOR_I #define SWIG_LIBWCCL_FUNCTIONALOPERATOR_I %module libcclfunctionaloperator %{ #include <libwccl/ops/operator.h> %} %include "libcclvalue.i" %include "libcclvariables.i" %include "libcclsentencecontext.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; protected: 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; #endif /* SWIG_LIBWCCL_FUNCTIONALOPERATOR_I */