You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
1.5 KiB

  1. #pragma once
  2. #include "src/adapters/CarlAdapter.h"
  3. #include "src/storage/expressions/Expression.h"
  4. #include "src/storage/expressions/Expressions.h"
  5. #include "src/storage/expressions/ExpressionVisitor.h"
  6. #include "src/storage/expressions/Variable.h"
  7. namespace storm {
  8. namespace expressions {
  9. template<typename RationalNumberType>
  10. class ToRationalNumberVisitor : public ExpressionVisitor {
  11. public:
  12. ToRationalNumberVisitor();
  13. RationalNumberType toRationalNumber(Expression const& expression);
  14. virtual boost::any visit(IfThenElseExpression const& expression) override;
  15. virtual boost::any visit(BinaryBooleanFunctionExpression const& expression) override;
  16. virtual boost::any visit(BinaryNumericalFunctionExpression const& expression) override;
  17. virtual boost::any visit(BinaryRelationExpression const& expression) override;
  18. virtual boost::any visit(VariableExpression const& expression) override;
  19. virtual boost::any visit(UnaryBooleanFunctionExpression const& expression) override;
  20. virtual boost::any visit(UnaryNumericalFunctionExpression const& expression) override;
  21. virtual boost::any visit(BooleanLiteralExpression const& expression) override;
  22. virtual boost::any visit(IntegerLiteralExpression const& expression) override;
  23. virtual boost::any visit(DoubleLiteralExpression const& expression) override;
  24. };
  25. }
  26. }