diff --git a/swig/libcorpustokenreader.i b/swig/libcorpustokenreader.i index c5d64d1ae4f7bc731f9e9872c1d694aaa7cf2268..901b259f2f5c1aebaeb838b8e66bd1e15cbd3798 100644 --- a/swig/libcorpustokenreader.i +++ b/swig/libcorpustokenreader.i @@ -18,13 +18,15 @@ %nodefaultctor Corpus2::TokenReader; %template(TokenReaderPtr) boost::shared_ptr<Corpus2::TokenReader>; +%template(TokenPtr) boost::shared_ptr<Corpus2::Token>; // %template(StdStringVector) std::vector<std::string>; // %template(ChunkPtr) boost::shared_ptr<Corpus2::Chunk>; - +typedef boost::shared_ptr<Corpus2::Token> TokenPtr; namespace Corpus2 { class TokenReader { public: typedef boost::shared_ptr<TokenReader> TokenReaderPtr; + //typedef boost::shared_ptr<Token> TokenPtr; /* --------------------------------------------------------------------- */ explicit TokenReader(const Tagset& tagset); @@ -58,7 +60,7 @@ namespace Corpus2 { std::istream& stream); /* --------------------------------------------------------------------- */ - virtual Token* get_next_token() = 0; + /* virtual Token* get_next_token() = 0; */ virtual Sentence::Ptr get_next_sentence() = 0; virtual boost::shared_ptr<Chunk> get_next_chunk() = 0; virtual bool has_more() = 0; @@ -76,6 +78,13 @@ namespace Corpus2 { static std::vector<std::string> available_reader_types_help(); }; + %extend TokenReader { + /* modfify the native get_next_token to wrap the tokens into shared_ptr */ + boost::shared_ptr<Corpus2::Token> get_next_token() { + return boost::shared_ptr<Corpus2::Token>(self->get_next_token()); + } + } + std::vector<boost::shared_ptr<Chunk> > read_chunks_from_utf8_string( const std::string& data, const Tagset& tagset, const std::string& format);