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
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% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment