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 <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% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment