diff --git a/src/python/storm-core.cpp b/src/python/storm-core.cpp index be512bf22..bcdd4c994 100644 --- a/src/python/storm-core.cpp +++ b/src/python/storm-core.cpp @@ -1,16 +1,37 @@ - #include <boost/python.hpp> +#include <boost/python/suite/indexing/vector_indexing_suite.hpp> #include "../utility/storm.h" +#include "../logic/Formulas.h" + +namespace boost { + template<class T> T* get_pointer(std::shared_ptr<T> p) { return p.get(); } +} BOOST_PYTHON_MODULE(_core) { using namespace boost::python; def("setUp", storm::utility::setUp); + class_<storm::logic::Formula, std::shared_ptr<storm::logic::Formula>, boost::noncopyable>("Formula", no_init) + .def("toString", &storm::logic::Formula::toString); + class_<std::vector<std::shared_ptr<storm::logic::Formula>>>("FormulaVec") + .def(vector_indexing_suite<std::vector<std::shared_ptr<storm::logic::Formula>>, true>()) + ; + + + class_<storm::logic::ProbabilityOperatorFormula, std::shared_ptr<storm::logic::ProbabilityOperatorFormula>, bases<storm::logic::Formula>>("ProbabilityOperatorFormula", no_init) + .def("toString", &storm::logic::ProbabilityOperatorFormula::toString); class_<storm::prism::Program>("Program") .def("getNumberOfModules", &storm::prism::Program::getNumberOfModules) ; - + + + + def("parseFormulae", storm::parseFormulasForProgram); def("parseProgram", storm::parseProgram); + + def("buildAndCheck", storm::buildAndCheckSymbolicModel<double>); + + } \ No newline at end of file