Merge pull request #47 from flikka/throw-on-too-long-records
Throw on too long records
This commit is contained in:
@@ -54,12 +54,18 @@ namespace Opm {
|
||||
}
|
||||
|
||||
DeckRecordConstPtr ParserRecord::parse(RawRecordPtr rawRecord) const {
|
||||
std::string recordBeforeParsing = rawRecord->getRecordString();
|
||||
DeckRecordPtr deckRecord(new DeckRecord());
|
||||
for (size_t i = 0; i < size(); i++) {
|
||||
ParserItemConstPtr parserItem = get(i);
|
||||
DeckItemConstPtr deckItem = parserItem->scan(rawRecord);
|
||||
deckRecord->addItem(deckItem);
|
||||
}
|
||||
const size_t recordSize = rawRecord->size();
|
||||
if (recordSize > 0)
|
||||
throw std::invalid_argument("The RawRecord for keyword \"" + rawRecord->getKeywordName() + "\" in file\"" + rawRecord->getFileName() + "\" contained " +
|
||||
boost::lexical_cast<std::string>(recordSize) +
|
||||
" too many items according to the spec. RawRecord was: " + recordBeforeParsing);
|
||||
|
||||
return deckRecord;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user