/* * File: ConstDoubleExpressionGrammar.h * Author: nafur * * Created on April 10, 2013, 7:04 PM */ #ifndef CONSTDOUBLEEXPRESSIONGRAMMAR_H #define CONSTDOUBLEEXPRESSIONGRAMMAR_H #include "Includes.h" #include "VariableState.h" #include "IdentifierGrammars.h" namespace storm { namespace parser { namespace prism { class ConstDoubleExpressionGrammar : public qi::grammar(), Skipper, Unused>, public BaseGrammar { public: ConstDoubleExpressionGrammar(std::shared_ptr& state); private: qi::rule(), Skipper, Unused> constantDoubleExpression; qi::rule(), qi::locals, Skipper> constantDoublePlusExpression; qi::rule(), qi::locals, Skipper> constantDoubleMultExpression; qi::rule(), Skipper> constantAtomicDoubleExpression; qi::rule(), Skipper> doubleConstantExpression; qi::rule(), Skipper> doubleLiteralExpression; std::shared_ptr createLiteral(double value); std::shared_ptr createPlus(const std::shared_ptr left, bool addition, const std::shared_ptr right); std::shared_ptr createMult(const std::shared_ptr left, bool multiplication, const std::shared_ptr right); }; } } } #endif /* CONSTDOUBLEEXPRESSIONGRAMMAR_H */