.def_property_readonly("updates",&Command::getUpdates,"Updates in the command");
.def_property_readonly("updates",&Command::getUpdates,"Updates in the command")
.def("__str__",&streamToString<Command>)
;
py::class_<Update>update(m,"PrismUpdate","An update in a Prism command");
py::class_<Update>update(m,"PrismUpdate","An update in a Prism command");
update.def_property_readonly("assignments",&Update::getAssignments,"Assignments in the update")
update.def_property_readonly("assignments",&Update::getAssignments,"Assignments in the update")
.def_property_readonly("probability_expression",&Update::getLikelihoodExpression,"The probability expression for this update")
.def_property_readonly("probability_expression",&Update::getLikelihoodExpression,"The probability expression for this update")
;//Added by Kevin
.def("__str__",&streamToString<Update>)
;
py::class_<Assignment>assignment(m,"PrismAssignment","An assignment in prism");
py::class_<Assignment>assignment(m,"PrismAssignment","An assignment in prism");
assignment.def_property_readonly("variable",&Assignment::getVariable,"Variable that is updated")
assignment.def_property_readonly("variable",&Assignment::getVariable,"Variable that is updated")
.def_property_readonly("expression",&Assignment::getExpression,"Expression for the update");
.def_property_readonly("expression",&Assignment::getExpression,"Expression for the update")
.def("__str__",&streamToString<Assignment>)
;
@ -85,9 +104,183 @@ void define_prism(py::module& m) {
py::class_<IntegerVariable,std::shared_ptr<IntegerVariable>>integer_variable(m,"Prism_Integer_Variable",variable,"A program integer variable in a Prism program");
py::class_<IntegerVariable,std::shared_ptr<IntegerVariable>>integer_variable(m,"Prism_Integer_Variable",variable,"A program integer variable in a Prism program");
integer_variable.def_property_readonly("lower_bound_expression",&IntegerVariable::getLowerBoundExpression,"The the lower bound expression of this integer variable")
integer_variable.def_property_readonly("lower_bound_expression",&IntegerVariable::getLowerBoundExpression,"The the lower bound expression of this integer variable")
.def_property_readonly("upper_bound_expression",&IntegerVariable::getUpperBoundExpression,"The the upper bound expression of this integer variable")
.def_property_readonly("upper_bound_expression",&IntegerVariable::getUpperBoundExpression,"The the upper bound expression of this integer variable")
.def("__str__",&streamToString<IntegerVariable>)
;
;
py::class_<BooleanVariable,std::shared_ptr<BooleanVariable>>boolean_variable(m,"Prism_Boolean_Variable",variable,"A program boolean variable in a Prism program");
py::class_<BooleanVariable,std::shared_ptr<BooleanVariable>>boolean_variable(m,"Prism_Boolean_Variable",variable,"A program boolean variable in a Prism program");
STORM_LOG_THROW(stateStorage.initialStateIndices.size()==1,storm::exceptions::NotSupportedException,"Currently only models with one initial state are supported.");
py::class_<ValuationMapping,std::shared_ptr<ValuationMapping>>valuation_mapping(m,"ValuationMapping","A valuation mapping for a state consists of a mapping from variable to value for each of the three types.");
@ -18,4 +18,5 @@ void define_simplevaluation(py::module& m) {
py::class_<storm::expressions::SimpleValuation,std::shared_ptr<storm::expressions::SimpleValuation>>simplevaluation(m,"SimpleValuation","Valuations for storm variables");
py::class_<storm::expressions::SimpleValuation,std::shared_ptr<storm::expressions::SimpleValuation>>simplevaluation(m,"SimpleValuation","Valuations for storm variables");
xxxxxxxxxx