Skip to content
Snippets Groups Projects
Commit f1a538f3 authored by Bartosz Broda's avatar Bartosz Broda
Browse files

implementataion of inner reader functionality

parent 1f5d3535
Branches
No related tags found
No related merge requests found
#include "mwereader.h" #include "mwereader.h"
#include <boost/algorithm/string.hpp>
namespace Corpus2{ namespace Corpus2{
bool MWEReader::registered = TokenReader::register_path_reader<MWEReader>( bool MWEReader::registered = TokenReader::register_path_reader<MWEReader>(
"mwereader","token,chunk,sentence"); // TODO wiecej helpa "mwereader","token,chunk,sentence"); // TODO more help?
MWEReader::MWEReader(const Tagset &tagset, const std::string &filename) MWEReader::MWEReader(const Tagset &tagset, const std::string &filename)
: TokenReader(tagset) : TokenReader(tagset), inner_filename_(filename)
{ {
// TODO implementataion // TODO implementataion
std::cerr << "Jestem sobie MWE Readerkiem" << std::endl;
} }
MWEReader::~MWEReader() MWEReader::~MWEReader()
...@@ -19,37 +19,49 @@ bool MWEReader::registered = TokenReader::register_path_reader<MWEReader>( ...@@ -19,37 +19,49 @@ bool MWEReader::registered = TokenReader::register_path_reader<MWEReader>(
Token* MWEReader::get_next_token() Token* MWEReader::get_next_token()
{ {
// TODO implementation // TODO MWE stuff
return 0; return inner_reader_->get_next_token();
} }
Sentence::Ptr MWEReader::get_next_sentence() Sentence::Ptr MWEReader::get_next_sentence()
{ {
// TODO implementataion // TODO MWE stuff
return Sentence::Ptr(); return inner_reader_->get_next_sentence();
} }
boost::shared_ptr<Chunk> MWEReader::get_next_chunk() boost::shared_ptr<Chunk> MWEReader::get_next_chunk()
{ {
// TODO implementataion // TODO MWE stuff
return boost::shared_ptr<Chunk>(); return inner_reader_->get_next_chunk();
} }
void MWEReader::set_option(const std::string& option) void MWEReader::set_option(const std::string& option)
{ {
// TODO implementataion
if(boost::algorithm::starts_with(option, "inner:"))
{
std::string inner = option.substr(6);
inner_reader_ = create_path_reader(inner, this->tagset(),
inner_filename_);
}
// TODO MWE stuff
} }
void MWEReader::validate() void MWEReader::validate()
{ {
// TODO implementataion if(inner_reader_ == NULL)
throw Corpus2Error("Inner reader not initialised.");
// TODO MWE stuff
} }
std::string MWEReader::get_option(const std::string& option) const std::string MWEReader::get_option(const std::string& option) const
{ {
// TODO implementataion if(boost::algorithm::starts_with(option, "inner:")
std::string s; && inner_reader_ != NULL)
return s; return option;
// TODO options for MWE
return inner_reader_->get_option(option);
} }
......
...@@ -9,6 +9,9 @@ namespace Corpus2 { ...@@ -9,6 +9,9 @@ namespace Corpus2 {
class MWEReader: public TokenReader class MWEReader: public TokenReader
{ {
public: public:
/**
* \param filename corpus filename (MWE file is given in options)
*/
MWEReader(const Tagset& tagset, const std::string& filename); MWEReader(const Tagset& tagset, const std::string& filename);
~MWEReader(); ~MWEReader();
...@@ -34,6 +37,12 @@ public: ...@@ -34,6 +37,12 @@ public:
virtual void validate(); virtual void validate();
static bool registered; static bool registered;
private:
/// ptr to inner reader doing the real work of reading a corpus
TokenReaderPtr inner_reader_;
/// path for inner reader
std::string inner_filename_;
/// inner reader option
}; };
} // ns Corpus2 } // ns Corpus2
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment