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 <boost/algorithm/string.hpp>
namespace Corpus2{
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)
: TokenReader(tagset)
: TokenReader(tagset), inner_filename_(filename)
{
// TODO implementataion
std::cerr << "Jestem sobie MWE Readerkiem" << std::endl;
}
MWEReader::~MWEReader()
......@@ -19,37 +19,49 @@ bool MWEReader::registered = TokenReader::register_path_reader<MWEReader>(
Token* MWEReader::get_next_token()
{
// TODO implementation
return 0;
// TODO MWE stuff
return inner_reader_->get_next_token();
}
Sentence::Ptr MWEReader::get_next_sentence()
{
// TODO implementataion
return Sentence::Ptr();
// TODO MWE stuff
return inner_reader_->get_next_sentence();
}
boost::shared_ptr<Chunk> MWEReader::get_next_chunk()
{
// TODO implementataion
return boost::shared_ptr<Chunk>();
// TODO MWE stuff
return inner_reader_->get_next_chunk();
}
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()
{
// 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
{
// TODO implementataion
std::string s;
return s;
if(boost::algorithm::starts_with(option, "inner:")
&& inner_reader_ != NULL)
return option;
// TODO options for MWE
return inner_reader_->get_option(option);
}
......
......@@ -9,6 +9,9 @@ namespace Corpus2 {
class MWEReader: public TokenReader
{
public:
/**
* \param filename corpus filename (MWE file is given in options)
*/
MWEReader(const Tagset& tagset, const std::string& filename);
~MWEReader();
......@@ -34,6 +37,12 @@ public:
virtual void validate();
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
......
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