#ifndef LIBWCCL_VALUES_ANNOTATIONMATCH_H #define LIBWCCL_VALUES_ANNOTATIONMATCH_H #include <libwccl/values/matchdata.h> namespace Wccl { class AnnotationMatch : public MatchData { public: explicit AnnotationMatch(int abs_pos, const std::string& channel) : abs_pos_(abs_pos), channel_(channel) { BOOST_ASSERT(abs_pos_ >= 0); } /// MatchData override. bool empty() const { return false; } /// MatchData override. int first_token(const boost::shared_ptr<Corpus2::AnnotatedSentence>& s) const; /// MatchData override. int last_token(const boost::shared_ptr<Corpus2::AnnotatedSentence>& s) const; /// MatchData override std::string to_raw_string() const; protected: /// MatchData override AnnotationMatch* clone_internal() const { return new AnnotationMatch(*this); } private: int abs_pos_; std::string channel_; }; } /* end ns Wccl */ #endif // LIBWCCL_VALUES_ANNOTATIONMATCH_H