Browse Source

DFT: no error for optional json arguments

tempestpy_adaptions
Matthias Volk 6 years ago
parent
commit
d4efcd49e3
  1. 9
      src/storm-dft/parser/DFTJsonParser.cpp

9
src/storm-dft/parser/DFTJsonParser.cpp

@ -34,16 +34,18 @@ namespace storm {
template<typename ValueType>
storm::storage::DFT<ValueType> DFTJsonParser<ValueType>::parseJson(json const& jsonInput) {
// Parse parameters
// Try to parse parameters
if (jsonInput.find("parameters") != jsonInput.end()) {
json parameters = jsonInput.at("parameters");
STORM_LOG_THROW(parameters.empty() || (std::is_same<ValueType, storm::RationalFunction>::value), storm::exceptions::NotSupportedException, "Parameters only allowed when using rational functions.");
for (auto it = parameters.begin(); it != parameters.end(); ++it) {
STORM_LOG_THROW((std::is_same<ValueType, storm::RationalFunction>::value), storm::exceptions::NotSupportedException, "Parameters only allowed when using rational functions.");
std::string parameter = it.key();
storm::expressions::Variable var = manager->declareRationalVariable(parameter);
identifierMapping.emplace(var.getName(), var);
parser.setIdentifierMapping(identifierMapping);
STORM_LOG_TRACE("Added parameter: " << var.getName());
}
}
json nodes = jsonInput.at("nodes");
// Start by building mapping from ids to their unique names
@ -102,6 +104,8 @@ namespace storm {
success = false;
}
// Try to set layout information
if (element.find("position") != element.end()) {
// Do not set layout for dependencies
// This does not work because dependencies might be splitted
// TODO: do splitting later in rewriting step
@ -112,6 +116,7 @@ namespace storm {
double y = position.at("y");
builder.addLayoutInfo(name, x / 7, y / 7);
}
}
STORM_LOG_THROW(success, storm::exceptions::FileIoException, "Error while adding element '" << element << "'.");
}

Loading…
Cancel
Save