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.

35 lines
2.1 KiB

  1. #ifndef STORM_LOGIC_FORMULAVISITOR_H_
  2. #define STORM_LOGIC_FORMULAVISITOR_H_
  3. #include <boost/any.hpp>
  4. #include "src/logic/FormulasForwardDeclarations.h"
  5. namespace storm {
  6. namespace logic {
  7. class FormulaVisitor {
  8. public:
  9. virtual boost::any visit(AtomicExpressionFormula const& f, boost::any const& data) const = 0;
  10. virtual boost::any visit(AtomicLabelFormula const& f, boost::any const& data) const = 0;
  11. virtual boost::any visit(BinaryBooleanStateFormula const& f, boost::any const& data) const = 0;
  12. virtual boost::any visit(BooleanLiteralFormula const& f, boost::any const& data) const = 0;
  13. virtual boost::any visit(BoundedUntilFormula const& f, boost::any const& data) const = 0;
  14. virtual boost::any visit(ConditionalFormula const& f, boost::any const& data) const = 0;
  15. virtual boost::any visit(CumulativeRewardFormula const& f, boost::any const& data) const = 0;
  16. virtual boost::any visit(EventuallyFormula const& f, boost::any const& data) const = 0;
  17. virtual boost::any visit(TimeOperatorFormula const& f, boost::any const& data) const = 0;
  18. virtual boost::any visit(GloballyFormula const& f, boost::any const& data) const = 0;
  19. virtual boost::any visit(InstantaneousRewardFormula const& f, boost::any const& data) const = 0;
  20. virtual boost::any visit(LongRunAverageOperatorFormula const& f, boost::any const& data) const = 0;
  21. virtual boost::any visit(LongRunAverageRewardFormula const& f, boost::any const& data) const = 0;
  22. virtual boost::any visit(NextFormula const& f, boost::any const& data) const = 0;
  23. virtual boost::any visit(ProbabilityOperatorFormula const& f, boost::any const& data) const = 0;
  24. virtual boost::any visit(RewardOperatorFormula const& f, boost::any const& data) const = 0;
  25. virtual boost::any visit(UnaryBooleanStateFormula const& f, boost::any const& data) const = 0;
  26. virtual boost::any visit(UntilFormula const& f, boost::any const& data) const = 0;
  27. };
  28. }
  29. }
  30. #endif /* STORM_LOGIC_FORMULAVISITOR_H_ */