diff --git a/libcorpus2/io/reader.h b/libcorpus2/io/reader.h index 15adbbb62999eb523d74fe4cc7f9c9ce49a13e2c..c18a029735f2ea1a5d68918b08f305ebf6923f86 100644 --- a/libcorpus2/io/reader.h +++ b/libcorpus2/io/reader.h @@ -46,6 +46,9 @@ public: virtual boost::shared_ptr<Chunk> get_next_chunk() = 0; + virtual void set_option(const std::string& /*option*/) { + } + const Tagset& tagset() { return tagset_; } diff --git a/libcorpus2/io/xcesreader.cpp b/libcorpus2/io/xcesreader.cpp index a33aeb46bdcaed9f6c11e5ca5d7d2c08fc909f7f..8d71c3586fbdcfc56e3d7d7d397fdbb1c5e8dbb5 100644 --- a/libcorpus2/io/xcesreader.cpp +++ b/libcorpus2/io/xcesreader.cpp @@ -89,4 +89,13 @@ XcesReaderImpl::~XcesReaderImpl() { } +void XcesReader::set_option(const std::string& option) +{ + if (option == "loose") { + impl_->set_loose_tag_parsing(true); + } else if (option == "strict") { + impl_->set_loose_tag_parsing(false); + } +} + } /* end ns Corpus2 */ diff --git a/libcorpus2/io/xcesreader.h b/libcorpus2/io/xcesreader.h index 004b62fd8f3fd112e0110d766039fbd89d7b2bbc..3260693f4a0da8d58711365661b6f86cb6d0b6a0 100644 --- a/libcorpus2/io/xcesreader.h +++ b/libcorpus2/io/xcesreader.h @@ -42,6 +42,8 @@ public: return *is_; } + void set_option(const std::string& option); + protected: void ensure_more();