Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Heafield <github@kheafield.com>2013-03-28 14:27:11 +0400
committerKenneth Heafield <github@kheafield.com>2013-03-28 14:27:11 +0400
commitae53bc91d1a0186d791a98570c544b9999f39bd8 (patch)
treeed8ec9806f36091cc150d1afb31bf30ca67da115 /moses/Word.cpp
parenteeeda717a41b41db784564c88020f15a2f5bef57 (diff)
Nicer error message for too many factor delimiters
Diffstat (limited to 'moses/Word.cpp')
-rw-r--r--moses/Word.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/moses/Word.cpp b/moses/Word.cpp
index c23e8de8c..2c1ac09ea 100644
--- a/moses/Word.cpp
+++ b/moses/Word.cpp
@@ -25,6 +25,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#include "Word.h"
#include "TypeDef.h"
#include "StaticData.h" // needed to determine the FactorDelimiter
+#include "util/exception.hh"
#include "util/tokenize_piece.hh"
using namespace std;
@@ -95,6 +96,8 @@ std::string Word::GetString(FactorType factorType) const
return NULL;
}
+class StrayFactorException : public util::Exception {};
+
void Word::CreateFromString(FactorDirection direction
, const std::vector<FactorType> &factorOrder
, const StringPiece &str
@@ -106,7 +109,7 @@ void Word::CreateFromString(FactorDirection direction
for (size_t ind = 0; ind < factorOrder.size() && fit; ++ind, ++fit) {
m_factorArray[factorOrder[ind]] = factorCollection.AddFactor(*fit);
}
- CHECK(!fit);
+ UTIL_THROW_IF(fit, StrayFactorException, "You have configured " << factorOrder.size() << " factors but the word " << str << " contains factor delimiter " << StaticData::Instance().GetFactorDelimiter() << " too many times.");
// assume term/non-term same for all factors
m_isNonTerminal = isNonTerminal;