Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
TraverseFormulaVisitor.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4
6
7namespace storm::logic {
8
13 public:
17 explicit TraverseFormulaVisitor(std::function<bool(Formula const&)> callback);
18
22 void traverse(Formula const& f) const;
23
24 virtual boost::any visit(AtomicExpressionFormula const& f, boost::any const& data) const override;
25 virtual boost::any visit(AtomicLabelFormula const& f, boost::any const& data) const override;
26 virtual boost::any visit(BinaryBooleanStateFormula const& f, boost::any const& data) const override;
27 virtual boost::any visit(BinaryBooleanPathFormula const& f, boost::any const& data) const override;
28 virtual boost::any visit(BooleanLiteralFormula const& f, boost::any const& data) const override;
29 virtual boost::any visit(BoundedUntilFormula const& f, boost::any const& data) const override;
30 virtual boost::any visit(ConditionalFormula const& f, boost::any const& data) const override;
31 virtual boost::any visit(CumulativeRewardFormula const& f, boost::any const& data) const override;
32 virtual boost::any visit(EventuallyFormula const& f, boost::any const& data) const override;
33 virtual boost::any visit(TimeOperatorFormula const& f, boost::any const& data) const override;
34 virtual boost::any visit(GloballyFormula const& f, boost::any const& data) const override;
35 virtual boost::any visit(GameFormula const& f, boost::any const& data) const override;
36 virtual boost::any visit(InstantaneousRewardFormula const& f, boost::any const& data) const override;
37 virtual boost::any visit(LongRunAverageOperatorFormula const& f, boost::any const& data) const override;
38 virtual boost::any visit(LongRunAverageRewardFormula const& f, boost::any const& data) const override;
39 virtual boost::any visit(MultiObjectiveFormula const& f, boost::any const& data) const override;
40 virtual boost::any visit(QuantileFormula const& f, boost::any const& data) const override;
41 virtual boost::any visit(NextFormula const& f, boost::any const& data) const override;
42 virtual boost::any visit(ProbabilityOperatorFormula const& f, boost::any const& data) const override;
43 virtual boost::any visit(RewardOperatorFormula const& f, boost::any const& data) const override;
44 virtual boost::any visit(TotalRewardFormula const& f, boost::any const& data) const override;
45 virtual boost::any visit(UnaryBooleanStateFormula const& f, boost::any const& data) const override;
46 virtual boost::any visit(UnaryBooleanPathFormula const& f, boost::any const& data) const override;
47 virtual boost::any visit(UntilFormula const& f, boost::any const& data) const override;
48 virtual boost::any visit(WeakUntilFormula const& f, boost::any const& data) const override;
49 virtual boost::any visit(ReleaseFormula const& f, boost::any const& data) const override;
50 virtual boost::any visit(HOAPathFormula const& f, boost::any const& data) const override;
51 virtual boost::any visit(DiscountedCumulativeRewardFormula const& f, boost::any const& data) const override;
52 virtual boost::any visit(DiscountedTotalRewardFormula const& f, boost::any const& data) const override;
53
54 private:
55 std::function<bool(Formula const&)> callback;
56};
57
58} // namespace storm::logic
void traverse(Formula const &f) const
Visits the given formula and, as far as the callback demands it, its subformulas in pre-order.
TraverseFormulaVisitor(std::function< bool(Formula const &)> callback)
virtual boost::any visit(AtomicExpressionFormula const &f, boost::any const &data) const override