Browse Source

DFT: no error for optional json arguments

main
Matthias Volk 7 years ago
parent
commit
d4efcd49e3
  1. 41
      src/storm-dft/parser/DFTJsonParser.cpp

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

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

|||||||
100:0
Loading…
Cancel
Save