diff --git a/libwccl/sentencecontext.h b/libwccl/sentencecontext.h index fc69166557eef345fb3aae2ad5643c9daed9ebb7..6ff68a3351077c988cc6a73d7f2fd357fddee7ca 100644 --- a/libwccl/sentencecontext.h +++ b/libwccl/sentencecontext.h @@ -74,24 +74,34 @@ public: /// Token access convenience function - const. /// Will return NULL if the passed position is not valid in this Sentence - const Corpus2::Token* at(int position) const { + const Corpus2::Token* at(int abs_pos) const { if (is_current_inside()) { - return get_sentence()[position]; + return get_sentence()[abs_pos]; } else { return NULL; } } + /// Token access const function overload that takes a Position object + const Corpus2::Token* at(const Position& position) const { + return at(get_abs_position(position)); + } + /// Token access convenience function. /// Will return NULL if the passed position is not valid in this Sentence - Corpus2::Token* at(int position) { + Corpus2::Token* at(int abs_pos) { if (is_current_inside()) { - return get_sentence()[position]; + return get_sentence()[abs_pos]; } else { return NULL; } } + /// Token access function overload that takes a Position object + Corpus2::Token* at(const Position& position) { + return at(get_abs_position(position)); + } + /// Current token access shorthand, const. @see at const Corpus2::Token* current() const { return at(position_);