Browse Source
fix in getPlace; add capacities, GSPN settings and main file updated
fix in getPlace; add capacities, GSPN settings and main file updated
Former-commit-id:tempestpy_adaptions375172b307
[formerlyb8c1466633
] Former-commit-id:efaeb8b238
sjunges
8 years ago
11 changed files with 289 additions and 146 deletions
-
5src/builder/JaniGSPNBuilder.h
-
12src/parser/GspnParser.cpp
-
68src/settings/modules/GSPNSettings.cpp
-
59src/settings/modules/GSPNSettings.h
-
43src/storage/gspn/GSPN.cpp
-
19src/storage/gspn/GSPN.h
-
6src/storage/gspn/GspnBuilder.cpp
-
14src/storage/gspn/Place.cpp
-
14src/storage/gspn/Place.h
-
2src/storage/gspn/Transition.cpp
-
179src/storm-gspn.cpp
@ -0,0 +1,68 @@ |
|||||
|
#include "GSPNSettings.h"
|
||||
|
|
||||
|
#include "src/settings/SettingsManager.h"
|
||||
|
#include "src/settings/SettingMemento.h"
|
||||
|
#include "src/settings/Option.h"
|
||||
|
#include "src/settings/OptionBuilder.h"
|
||||
|
#include "src/settings/ArgumentBuilder.h"
|
||||
|
#include "src/settings/Argument.h"
|
||||
|
|
||||
|
#include "src/exceptions/InvalidSettingsException.h"
|
||||
|
|
||||
|
namespace storm { |
||||
|
namespace settings { |
||||
|
namespace modules { |
||||
|
const std::string GSPNSettings::moduleName = "gspn"; |
||||
|
|
||||
|
const std::string GSPNSettings::gspnFileOptionName = "gspnfile"; |
||||
|
const std::string GSPNSettings::gspnFileOptionShortName = "gspn"; |
||||
|
const std::string GSPNSettings::gspnToJaniOptionName = "to-jani"; |
||||
|
const std::string GSPNSettings::gspnToJaniOptionShortName = "tj"; |
||||
|
const std::string GSPNSettings::capacitiesFileOptionName = "capacitiesfile"; |
||||
|
const std::string GSPNSettings::capacitiesFileOptionShortName = "capacities"; |
||||
|
|
||||
|
|
||||
|
GSPNSettings::GSPNSettings() : ModuleSettings(moduleName) { |
||||
|
this->addOption(storm::settings::OptionBuilder(moduleName, gspnFileOptionName, false, "Parses the pgcl program.").setShortName(gspnFileOptionShortName).addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename", "path to file").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build()); |
||||
|
this->addOption(storm::settings::OptionBuilder(moduleName, gspnToJaniOptionName, false, "Transform to JANI.").setShortName(gspnToJaniOptionShortName).build()); |
||||
|
this->addOption(storm::settings::OptionBuilder(moduleName, capacitiesFileOptionName, false, "Restrictions of program variables").setShortName(capacitiesFileOptionShortName).addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename", "path to file").addValidationFunctionString(storm::settings::ArgumentValidators::existingReadableFileValidator()).build()).build()); |
||||
|
} |
||||
|
|
||||
|
bool GSPNSettings::isGspnFileSet() const { |
||||
|
return this->getOption(gspnFileOptionName).getHasOptionBeenSet(); |
||||
|
} |
||||
|
|
||||
|
std::string GSPNSettings::getGspnFilename() const { |
||||
|
return this->getOption(gspnFileOptionName).getArgumentByName("filename").getValueAsString(); |
||||
|
} |
||||
|
|
||||
|
bool GSPNSettings::isToJaniSet() const { |
||||
|
return this->getOption(gspnToJaniOptionName).getHasOptionBeenSet(); |
||||
|
} |
||||
|
|
||||
|
bool GSPNSettings::isCapacitiesFileSet() const { |
||||
|
return this->getOption(capacitiesFileOptionName).getHasOptionBeenSet(); |
||||
|
} |
||||
|
|
||||
|
std::string GSPNSettings::getCapacitiesFilename() const { |
||||
|
return this->getOption(capacitiesFileOptionName).getArgumentByName("filename").getValueAsString(); |
||||
|
} |
||||
|
|
||||
|
void GSPNSettings::finalize() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
bool GSPNSettings::check() const { |
||||
|
if(!isGspnFileSet()) { |
||||
|
if(isToJaniSet()) { |
||||
|
return false; |
||||
|
} |
||||
|
if(isCapacitiesFileSet()) { |
||||
|
return false; |
||||
|
} |
||||
|
} |
||||
|
return true; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,59 @@ |
|||||
|
#pragma once |
||||
|
|
||||
|
#include "storm-config.h" |
||||
|
#include "src/settings/modules/ModuleSettings.h" |
||||
|
|
||||
|
|
||||
|
namespace storm { |
||||
|
namespace settings { |
||||
|
namespace modules { |
||||
|
class GSPNSettings : public ModuleSettings { |
||||
|
public: |
||||
|
/*! |
||||
|
* Creates a new PGCL setting |
||||
|
*/ |
||||
|
GSPNSettings(); |
||||
|
|
||||
|
/** |
||||
|
* Retrievew whether the pgcl file option was set |
||||
|
*/ |
||||
|
bool isGspnFileSet() const; |
||||
|
|
||||
|
/** |
||||
|
* Retrieves the gspn file name |
||||
|
*/ |
||||
|
std::string getGspnFilename() const; |
||||
|
|
||||
|
/** |
||||
|
* Whether the gspn should be transformed to Jani |
||||
|
*/ |
||||
|
bool isToJaniSet() const; |
||||
|
|
||||
|
/** |
||||
|
* Retrievew whether the pgcl file option was set |
||||
|
*/ |
||||
|
bool isCapacitiesFileSet() const; |
||||
|
|
||||
|
/** |
||||
|
* Retrieves the gspn file name |
||||
|
*/ |
||||
|
std::string getCapacitiesFilename() const; |
||||
|
|
||||
|
|
||||
|
bool check() const override; |
||||
|
void finalize() override; |
||||
|
|
||||
|
static const std::string moduleName; |
||||
|
|
||||
|
private: |
||||
|
static const std::string gspnFileOptionName; |
||||
|
static const std::string gspnFileOptionShortName; |
||||
|
static const std::string gspnToJaniOptionName; |
||||
|
static const std::string gspnToJaniOptionShortName; |
||||
|
static const std::string capacitiesFileOptionName; |
||||
|
static const std::string capacitiesFileOptionShortName; |
||||
|
|
||||
|
}; |
||||
|
} |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue