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