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