#include <libwccl/values/position.h> #include <libwccl/sentencecontext.h> #include <boost/lexical_cast.hpp> namespace Wccl { const char* Position::type_name = "Position"; std::string Position::to_raw_string() const { switch (val_) { case Nowhere: return "nowhere"; case Begin: return "begin"; case End: return "end"; default: return boost::lexical_cast<std::string>(val_); } } std::string Position::var_repr(const std::string &var_name) { std::stringstream ss; ss << "$" << var_name; return ss.str(); } bool Position::equals(const Position& other, const SentenceContext& context) const { return context.get_abs_position(*this) == context.get_abs_position(other); } } /* end ns Wccl */