From c8b4e9aacea76b5adb18b6f5efcb00b1e3e7915a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pawe=C5=82=20K=C4=99dzia?= <pawel.kedzia@pwr.wroc.pl>
Date: Tue, 26 Apr 2011 14:22:06 +0200
Subject: [PATCH] Wrapper for Corpus2::Token

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

diff --git a/swig/libcorpustoken.i b/swig/libcorpustoken.i
new file mode 100644
index 0000000..124b2ce
--- /dev/null
+++ b/swig/libcorpustoken.i
@@ -0,0 +1,63 @@
+#ifndef SWIG_LIBCORPUS2_TOKEN_I
+#define SWIG_LIBCORPUS2_TOKEN_I
+
+%module libcorpustoken
+%{
+  #include <unicode/unistr.h>
+  #include <libcorpus2/token.h>
+%}
+
+%include "libcorpuslexeme.i"
+%include "libcorpustagset.i"
+
+%include "std_pair.i"
+%include "std_string.i"
+%include "std_vector.i"
+
+%feature("notabstract") Corpus2::Token;
+
+%rename(__op_eq__) Corpus2::Token::operator==(const Token& other) const;
+
+%template(lexemeVector) std::vector<Lexeme>;
+
+namespace Corpus2 {
+  class Token {
+  public:
+    Token();
+    Token(const UnicodeString& orth, PwrNlp::Whitespace::Enum wa);
+    Token* clone() const;
+    
+    const UnicodeString& orth() const;
+    std::string orth_utf8() const;
+
+    void set_orth(const UnicodeString& orth);
+    // void set_orth_utf8(const std::string& orth);
+
+    const PwrNlp::Whitespace::Enum& wa() const;
+    void set_wa(const PwrNlp::Whitespace::Enum& wa);
+
+    const std::vector<Lexeme>& lexemes() const;
+    std::vector<Lexeme>& lexemes();
+
+    void add_lexeme(const Lexeme& lex);
+
+    const Lexeme& get_preferred_lexeme(const Tagset& tagset) const;
+    size_t get_preferred_lexeme_index(const Tagset& tagset) const;
+
+    void make_ign(const Tagset& tagset);
+    void add_ign(const Tagset& tagset);
+
+    bool operator==(const Token& other) const;
+
+    bool check_duplicate_lexemes() const;
+    bool remove_duplicate_lexemes();
+
+    bool has_disamb_lexeme() const;
+    int count_disamb_lexemes() const;
+  };
+}
+
+using namespace std;
+using namespace Corpus2;
+
+#endif /* SWIG_LIBCORPUS2_TOKEN_I */
-- 
GitLab