#ifndef SWIG_LIBCORPUS2_SENTENCE_I #define SWIG_LIBCORPUS2_SENTENCE_I %module libcorpussentence %{ #include <libcorpus2/sentence.h> %} %include "libcorpustoken.i" %include "std_string.i" %include "std_vector.i" %include "boost_shared_ptr.i" %feature("notabstract") Corpus2::Sentence; %rename(__op_get__) Corpus2::Sentence::operator[](size_t idx) const; namespace Corpus2 { class Sentence { public: Sentence(); virtual ~Sentence(); virtual boost::shared_ptr<Sentence> clone_shared() const; void release_tokens(); bool empty() const; size_t size() const; Token* operator[](size_t idx); const std::vector<Token*>& tokens() const; std::vector<Token*>& tokens(); virtual void append(Token* t); const Token* first_token() const; }; } %template(SentenceSharedPtr) boost::shared_ptr<Corpus2::Sentence>; using namespace boost; using namespace std; using namespace Corpus2; #endif /* SWIG_LIBCORPUS2_SENTENCE_I */