From 113d343ee9e351038e58af2e00ca7fbce19814d7 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:13:54 +0200
Subject: [PATCH] Added wrapper for Wccl::SentenceContext

---
 swig/libcclsentencecontext.i | 70 ++++++++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 swig/libcclsentencecontext.i

diff --git a/swig/libcclsentencecontext.i b/swig/libcclsentencecontext.i
new file mode 100644
index 0000000..b1bb445
--- /dev/null
+++ b/swig/libcclsentencecontext.i
@@ -0,0 +1,70 @@
+#ifndef SWIG_LIBWCCL_SENTENCECONTEXT_I
+#define SWIG_LIBWCCL_SENTENCECONTEXT_I
+
+%module libcclsentencecontext
+%{
+  #include <libwccl/sentencecontext.h>
+%}
+
+%include "libcorpustoken.i"
+%include "libcorpuslexeme.i"
+%include "libcorpussentence.i"
+
+%include "libcclposition.i"
+
+%include "std_string.i"
+%include "boost_shared_ptr.i"
+
+// %feature("notabstract") Wccl::SentenceContext;
+
+namespace Wccl {
+  class SentenceContext {
+  public:
+    explicit SentenceContext(const boost::shared_ptr<Corpus2::Sentence>& s);
+
+    SentenceContext duplicate() const;
+    SentenceContext* clone() const;
+    
+    Corpus2::Sentence& get_sentence();
+    const Corpus2::Sentence& get_sentence() const;
+
+    int size() const;
+    int get_position() const;
+
+    bool is_current_inside() const;
+    bool is_inside(int abs_pos) const;
+    bool is_inside(const Position& pos) const;
+
+    bool is_outside(int abs_pos) const;
+    bool is_outside(const Position& pos) const;
+
+    bool validate_range(
+      const Position& left,
+      const Position& right,
+      int& abs_left,
+      int& abs_right) const;
+
+    void set_position(int new_position);
+    void advance();
+    void goto_start();
+    
+    const Corpus2::Token* at(int abs_pos) const;
+    const Corpus2::Token* at(const Position& position) const;
+    Corpus2::Token* at(int abs_pos);
+    Corpus2::Token* at(const Position& position);
+    const Corpus2::Token* current() const;
+    Corpus2::Token* current();
+
+    int get_abs_position(const Position& position) const;
+    int get_rel_position(const Position& position) const;
+    int translate_special_position(int pos) const;
+  };
+}
+
+%template(SentenceContextSharedPtr) boost::shared_ptr<Wccl::SentenceContext>;
+
+using namespace boost;
+using namespace std;
+using namespace Wccl;
+
+#endif /* SWIG_LIBWCCL_SENTENCECONTEXT_I */
-- 
GitLab