diff --git a/src/parser/CslParser.cpp b/src/parser/CslParser.cpp index 1f451e433..810788056 100644 --- a/src/parser/CslParser.cpp +++ b/src/parser/CslParser.cpp @@ -98,20 +98,20 @@ struct CslParser::CslGrammar : qi::grammar> qi::lit("<=") > qi::int_ > stateFormula)[qi::_val = - phoenix::new_>(qi::_2, qi::_1)]; - boundedEventually.name("path formula (for probabilistic operator)"); + timeBoundedEventually = (qi::lit("F") >> qi::lit("[") > qi::double_ > qi::lit(",") > qi::double_ > qi::lit("]") > stateFormula)[qi::_val = + phoenix::new_>(qi::_1, qi::_2, qi::_3)]; + timeBoundedEventually.name("path formula (for probabilistic operator)"); eventually = (qi::lit("F") > stateFormula)[qi::_val = phoenix::new_ >(qi::_1)]; eventually.name("path formula (for probabilistic operator)"); globally = (qi::lit("G") > stateFormula)[qi::_val = phoenix::new_ >(qi::_1)]; globally.name("path formula (for probabilistic operator)"); - boundedUntil = (stateFormula[qi::_a = phoenix::construct>>(qi::_1)] >> qi::lit("U") >> qi::lit("<=") > qi::int_ > stateFormula) - [qi::_val = phoenix::new_>(phoenix::bind(&storm::formula::AbstractStateFormula::clone, phoenix::bind(&std::shared_ptr>::get, qi::_a)), qi::_3, qi::_2)]; - boundedUntil.name("path formula (for probabilistic operator)"); + timeBoundedUntil = (stateFormula[qi::_a = phoenix::construct>>(qi::_1)] >> qi::lit("U") >> qi::lit("[") > qi::double_ > qi::lit(",") > qi::double_ > qi::lit("]") > stateFormula) + [qi::_val = phoenix::new_>(qi::_2, qi::_3, phoenix::bind(&storm::formula::AbstractStateFormula::clone, phoenix::bind(&std::shared_ptr>::get, qi::_a)), qi::_4)]; + timeBoundedUntil.name("path formula (for probabilistic operator)"); until = (stateFormula[qi::_a = phoenix::construct>>(qi::_1)] >> qi::lit("U") > stateFormula)[qi::_val = phoenix::new_>(phoenix::bind(&storm::formula::AbstractStateFormula::clone, phoenix::bind(&std::shared_ptr>::get, qi::_a)), qi::_2)]; until.name("path formula (for probabilistic operator)"); @@ -138,10 +138,10 @@ struct CslParser::CslGrammar : qi::grammar*(), Skipper> steadyStateNoBoundOperator; qi::rule*(), Skipper> pathFormula; - qi::rule*(), Skipper> boundedEventually; + qi::rule*(), Skipper> timeBoundedEventually; qi::rule*(), Skipper> eventually; qi::rule*(), Skipper> globally; - qi::rule*(), qi::locals< std::shared_ptr>>, Skipper> boundedUntil; + qi::rule*(), qi::locals< std::shared_ptr>>, Skipper> timeBoundedUntil; qi::rule*(), qi::locals< std::shared_ptr>>, Skipper> until; qi::rule*(), Skipper> rewardPathFormula;