@ -17,7 +17,7 @@
namespace storm {
namespace api {
boost : : optional < std : : set < std : : string > > parsePropertyFilter ( std : : string const & propertyFilter ) {
boost : : optional < std : : set < std : : string > > parsePropertyFilter ( std : : string const & propertyFilter ) {
if ( propertyFilter = = " all " ) {
return boost : : none ;
}
@ -26,7 +26,7 @@ namespace storm {
return propertyNameSet ;
}
std : : vector < storm : : jani : : Property > parseProperties ( storm : : parser : : FormulaParser & formulaParser , std : : string const & inputString , boost : : optional < std : : set < std : : string > > const & propertyFilter ) {
std : : vector < storm : : jani : : Property > parseProperties ( storm : : parser : : FormulaParser & formulaParser , std : : string const & inputString , boost : : optional < std : : set < std : : string > > const & propertyFilter ) {
// If the given property is a file, we parse it as a file, otherwise we assume it's a property.
std : : vector < storm : : jani : : Property > properties ;
if ( std : : ifstream ( inputString ) . good ( ) ) {
@ -39,25 +39,25 @@ namespace storm {
return filterProperties ( properties , propertyFilter ) ;
}
std : : vector < storm : : jani : : Property > parseProperties ( std : : string const & inputString , boost : : optional < std : : set < std : : string > > const & propertyFilter ) {
std : : vector < storm : : jani : : Property > parseProperties ( std : : string const & inputString , boost : : optional < std : : set < std : : string > > const & propertyFilter ) {
auto exprManager = std : : make_shared < storm : : expressions : : ExpressionManager > ( ) ;
storm : : parser : : FormulaParser formulaParser ( exprManager ) ;
return parseProperties ( formulaParser , inputString , propertyFilter ) ;
}
std : : vector < storm : : jani : : Property > parsePropertiesForJaniModel ( std : : string const & inputString , storm : : jani : : Model const & model , boost : : optional < std : : set < std : : string > > const & propertyFilter ) {
std : : vector < storm : : jani : : Property > parsePropertiesForJaniModel ( std : : string const & inputString , storm : : jani : : Model const & model , boost : : optional < std : : set < std : : string > > const & propertyFilter ) {
storm : : parser : : FormulaParser formulaParser ( model . getManager ( ) . getSharedPointer ( ) ) ;
auto formulas = parseProperties ( formulaParser , inputString , propertyFilter ) ;
return substituteConstantsInProperties ( formulas , model . getConstantsSubstitution ( ) ) ;
}
std : : vector < storm : : jani : : Property > parsePropertiesForPrismProgram ( std : : string const & inputString , storm : : prism : : Program const & program , boost : : optional < std : : set < std : : string > > const & propertyFilter ) {
std : : vector < storm : : jani : : Property > parsePropertiesForPrismProgram ( std : : string const & inputString , storm : : prism : : Program const & program , boost : : optional < std : : set < std : : string > > const & propertyFilter ) {
storm : : parser : : FormulaParser formulaParser ( program ) ;
auto formulas = parseProperties ( formulaParser , inputString , propertyFilter ) ;
return substituteConstantsInProperties ( formulas , program . getConstantsSubstitution ( ) ) ;
}
std : : vector < storm : : jani : : Property > parsePropertiesForSymbolicModelDescription ( std : : string const & inputString , storm : : storage : : SymbolicModelDescription const & modelDescription , boost : : optional < std : : set < std : : string > > const & propertyFilter ) {
std : : vector < storm : : jani : : Property > parsePropertiesForSymbolicModelDescription ( std : : string const & inputString , storm : : storage : : SymbolicModelDescription const & modelDescription , boost : : optional < std : : set < std : : string > > const & propertyFilter ) {
std : : vector < storm : : jani : : Property > result ;
if ( modelDescription . isPrismProgram ( ) ) {
result = storm : : api : : parsePropertiesForPrismProgram ( inputString , modelDescription . asPrismProgram ( ) , propertyFilter ) ;
@ -68,4 +68,4 @@ namespace storm {
return result ;
}
}
}
}