The RawString class is introduced as a string which can hold the literals '*',
'/' and '''. The RawString class is used to hold the content of UDQ and ACTIONX
keywords.
since we still support g++-7, where filesystem is marked experimental,
we introduce a wrapper header and expose the namespace to use
as Opm::filesystem.
for gcc we unconditionally link with libstdc++fs in the python bindings.
the setup.py stuff links as c code, not c++ code, so it is not
automatically added on any gcc version. this might prove unportable
later.
...
ParserKeyword: bool double_records set.
added keywords CECONT.
ParserKeywords: double_records set by keyword generator.
Parsertests: added test for parsing double_records.
ParserKeywords.parse: if double_records returns empty.
double_records keywords set to SLASH_TERMINATED.
...
ParserKeyword: for double records size_type = DOUBLE_SLASH_TERMINATED.
double_records: RawKeyword is Raw::DOUBLE_SLASH_TERMINATED.
RawKeyword uses m_isTempFinished.
Parser: can parse files with double-record keywords.
Parser.cpp/RawRecord.cpp: removed comments.
DeckKeyword has param m_isDoubleRecordKeyword.
test ParseDoubleRecords: double records to have linear structure.
DeckKeyword: Can create records of type double_record.
double-records parser test transferred to ParserTests.cpp.
...
...
With this commit the DeckItem::push_backDummyDefault() function will push back a
default value T( ). This will give a change in behaviour in downstream code
which has used getData<T> to get DeckItem data unchecked.
- Reduced the amount of state in the RawKeyword and ParserState classes.
- RawKeyword class has normal constructor - remove init method.
- The Rawxxx symbols are module private and the header files are not installed.
- Removed several unused static methods from Rawxxx and ParserKeyword.
Differentiate between the input type, as specified in the json configuration
file, and the internal native type used to store data. This is a many-to-one
mapping, where e.g. both the input types STRING and RAW_STRING map to the
internal datatype std::string.
Additional changes:
- Have removed several ParserItem() constructors.
- The size_type::SINGLE is default for a ParserItem, and not set explicitly in
the generated ParserKeywords.cpp file.
- Have removed a call to boost::lexical_cast<> - just use std::to_string()
The ParserContext error mode PARSE_LONG_KEYWORD is used to handle keywords
longer than 8 characters. The lenient option is to only consider the first 8
characters.
This commit ensures that we never try to read more than a single
record of data when parsing the RSCONST keyword. Previously, the
parser would attempt to parse RSCONST as if it were an unbounded
keyword that was terminated by an empty record. This, in turn,
would produce the diagnostic message
Inner exception: Malformed floating point number 'INCLUDE'
when trying to read a specification like
RSCONST
0.35 932 /
-- Check for these data in the future this is important
INCLUDE
'RP.dat' /
While here, also implement 'getSIDouble()' for the Rs value (item 1)
in keywords RSCONST and RSCONSTT by adding the correct unit of
measurement ("dimension") to the keyword specification.
Add unit tests to verify new behaviours.
This commit makes the parser aware of the keywords STONE and STONE2
which both request that the simulation run use Stone's second model
for three-phase relative permeability for oil.