Added a thin container for knowledge about keywords with fixed number of records. Changed some getter methods to return reference

This commit is contained in:
Kristian Flikka
2013-04-04 13:30:50 +02:00
parent 8a0892b388
commit aa8cd7b4ca
16 changed files with 234 additions and 111 deletions

View File

@@ -17,53 +17,24 @@
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Parser.hpp"
#include "RawDeck/RawParserKWs.hpp"
namespace Opm {
Parser::Parser() {
initializeFixedKeywordLenghts();
}
RawDeckPtr Parser::parse(const std::string &path) {
Logger::initLogger();
Logger::setLogLevel(Logger::DEBUG);
Logger::info("Starting parsing of file: " + path);
RawDeckPtr rawDeck(new RawDeck(m_keywordRecordLengths));
RawDeckPtr rawDeck(new RawDeck(RawParserKWsConstPtr(new RawParserKWs())));
rawDeck->readDataIntoDeck(path);
Logger::info("Done parsing of file: " + path);
return rawDeck;
}
void Parser::initializeFixedKeywordLenghts() {
m_keywordRecordLengths.insert(std::pair<std::string, int>("GRIDUNIT", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("INCLUDE", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("RADFIN4", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("DIMENS", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("START", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("GRIDOPTS", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("ENDSCALE", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("EQLOPTS", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("TABDIMS", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("EQLDIMS", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("REGDIMS", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("FAULTDIM", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("WELLDIMS", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("VFPPDIMS", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("RPTSCHED", 1));
m_keywordRecordLengths.insert(std::pair<std::string, int>("TITLE", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("RUNSPEC", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("METRIC", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("SCHEDULE", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("SKIPREST", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("NOECHO", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("END", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("OIL", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("GAS", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("WATER", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("DISGAS", 0));
m_keywordRecordLengths.insert(std::pair<std::string, int>("VAPOIL", 0));
}
Parser::~Parser() {
}