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