From e8185fae7d0b376b91c1a6043badf136662eb9f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20K=C4=99dzia?= <pawel.kedzia@pwr.wroc.pl> Date: Mon, 4 Apr 2011 15:52:29 +0200 Subject: [PATCH] Add wrapper for Wccl::Operator --- swig/libccloperator.i | 71 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 swig/libccloperator.i diff --git a/swig/libccloperator.i b/swig/libccloperator.i new file mode 100644 index 0000000..609d917 --- /dev/null +++ b/swig/libccloperator.i @@ -0,0 +1,71 @@ +#ifndef SWIG_LIBWCCL_OPERATOR_I +#define SWIG_LIBWCCL_OPERATOR_I + +%module libccloperator +%{ + #include <libwccl/ops/operator.h> +%} + + +%include "libcclvalue.i" +%include "libcclsentencecontext.i" +%include "libcclfunctionaloperator.i" + +/* +%include "libcclvariables.i" +%include "libcclparsedexpression.i" +*/ + +%include "std_string.i" +%include "boost_shared_ptr.i" + +%feature("notabstract") Wccl::Operator; + +%rename(__op_cop__) Wccl::Operator::operator=(const Operator& other); +%rename(__op_fun__) Wccl::Operator::operator()(const SentenceContext& sentence_context); + +namespace Wccl { + template <class T> class Operator : public FunctionalOperator { + public: + Operator(); + Operator& operator=(const Operator& other); +/* + Operator(const boost::shared_ptr<const Function<T> >& body, const Variables& variables); +*/ + + Operator(const Operator& other, bool clean = false); + + boost::shared_ptr<const T> operator()(const SentenceContext& sentence_context); + boost::shared_ptr<const T> apply(const SentenceContext& sentence_context); + boost::shared_ptr<T> copy_apply(const SentenceContext& sentence_context); + boost::shared_ptr<const Value> base_apply(const SentenceContext& sc); + + Operator clone() const; + Operator clone_clean() const; + + boost::shared_ptr<Operator<T> > clone_ptr() const; + boost::shared_ptr<Operator<T> > clone_clean_ptr() const; + + std::string to_string(const Corpus2::Tagset& tagset) const; + + protected: + Operator* clone_internal() const; + std::ostream& write_to(std::ostream& ostream) const; + }; + + %template (BoolOperator) Operator<Bool>; + %template (TSetOperator) Operator<TSet>; + %template (StrSetOperator) Operator<StrSet>; + %template (PositionOperator) Operator<Position>; + + %template (SharedPtrBoolOperator) boost::shared_ptr<Operator<Bool> >; + %template (SharedPtrTSetOperator) boost::shared_ptr<Operator<TSet> >; + %template (SharedPtrStrSetOperator) boost::shared_ptr<Operator<StrSet> >; + %template (SharedPtrPositionOperator) boost::shared_ptr<Operator<Position> >; +} + +using namespace boost; +using namespace std; +using namespace Wccl; + +#endif /* SWIG_LIBWCCL_OPERATOR_I */ -- GitLab