From 1e183f19a5ef5fc95a79e384b1c536d3e086fa88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20K=C4=99dzia?= <pawel.kedzia@pwr.wroc.pl> Date: Fri, 4 Mar 2011 11:04:31 +0100 Subject: [PATCH] Basic functionality of the expression, parsed expression and functional operator (to develop) --- swig/libcclexpression.i | 23 ++++++++++++++++++ swig/libcclfunctionaloperator.i | 28 +++++++++++++++++++++ swig/libcclparsedexpression.i | 43 +++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 swig/libcclexpression.i create mode 100644 swig/libcclfunctionaloperator.i create mode 100644 swig/libcclparsedexpression.i diff --git a/swig/libcclexpression.i b/swig/libcclexpression.i new file mode 100644 index 0000000..b401e85 --- /dev/null +++ b/swig/libcclexpression.i @@ -0,0 +1,23 @@ +#ifndef SWIG_LIBWCCL_EXPRESSION_I +#define SWIG_LIBWCCL_EXPRESSION_I + +%module libcclexpression +%{ + #include <libwccl/ops/expression.h> + #include <boost/noncopyable.hpp> +%} + +%include "libcorpustagset.i" +%include "std_string.i" + +namespace Wccl { + class Expression : boost::noncopyable { + public: + virtual std::string to_string(const Corpus2::Tagset& tagset) const = 0; + }; +} + +using namespace std; +using namespace Wccl; + +#endif /* SWIG_LIBWCCL_EXPRESSION_I */ diff --git a/swig/libcclfunctionaloperator.i b/swig/libcclfunctionaloperator.i new file mode 100644 index 0000000..6694916 --- /dev/null +++ b/swig/libcclfunctionaloperator.i @@ -0,0 +1,28 @@ +#ifndef SWIG_LIBWCCL_FUNCTIONALOPERATOR_I +#define SWIG_LIBWCCL_FUNCTIONALOPERATOR_I + +%module libcclparsedexpression +%{ + #include <libwccl/ops/operator.h> +%} + +%include "libcclparsedexpression.i" +%include "std_string.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; + }; +} + +using namespace std; +using namespace Wccl; + +#endif /* SWIG_LIBWCCL_FUNCTIONALOPERATOR_I */ diff --git a/swig/libcclparsedexpression.i b/swig/libcclparsedexpression.i new file mode 100644 index 0000000..6b224f7 --- /dev/null +++ b/swig/libcclparsedexpression.i @@ -0,0 +1,43 @@ +#ifndef SWIG_LIBWCCL_PARSEDEXPRESSION_I +#define SWIG_LIBWCCL_PARSEDEXPRESSION_I + +%module libcclparsedexpression +%{ + #include <libwccl/ops/parsedexpression.h> +%} + +%include "libcclexpression.i" +%include "std_string.i" + +namespace Wccl { + class ParsedExpression : public Expression { + public: + // TODO + // const Value& operator[](const std::string& var_name) const; + + // template<class T> + // const T& get(const std::string& var_name) const; + + // template<class T> + // T& get(const std::string& var_name) + + // template<class T> + // void set(const std::string& var_name, const T& value); + + void clean(); + // boost::shared_ptr<ParsedExpression> clone_ptr() const; + // boost::shared_ptr<ParsedExpression> clone_clean_ptr() const; + std::string variables_string(const Corpus2::Tagset& tagset) const; + // std::ostream& dump_variables(std::ostream& ostream, const Corpus2::Tagset& tagset) const; + + protected: + // explicit ParsedExpression(const Variables& variables); + // boost::shared_ptr<Variables> variables_; + virtual ParsedExpression* clone_internal() const = 0; + }; +} + +using namespace std; +using namespace Wccl; + +#endif /* SWIG_LIBWCCL_PARSEDEXPRESSION_I */ -- GitLab