7#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SMALL_STEP_ABSTRACT_STEPPER_H_
8#define BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SMALL_STEP_ABSTRACT_STEPPER_H_
18#include "ir/visitor.h"
20#include "backends/p4tools/modules/testgen/core/program_info.h"
21#include "backends/p4tools/modules/testgen/core/small_step/small_step.h"
22#include "backends/p4tools/modules/testgen/lib/continuation.h"
23#include "backends/p4tools/modules/testgen/lib/execution_state.h"
25namespace P4::P4Tools::P4Testgen {
34class AbstractStepper :
public Inspector {
37 using Result = SmallStepEvaluator::Result;
100 const IR::Expression *subexpr, SmallStepEvaluator::Result &
result,
115 const IR::BaseListExpression *subexpr, SmallStepEvaluator::Result &
result,
117 std::function<
const Continuation::Command(
const IR::BaseListExpression *)> rebuildCmd);
123 const IR::StructExpression *subexpr, SmallStepEvaluator::Result &
result,
125 std::function<
const Continuation::Command(
const IR::StructExpression *)> rebuildCmd);
165 std::optional<const IR::Expression *> cond)
const;
172 bool forceTaint)
const;
178 bool forceTaint =
false)
const;
183 const IR::Type_Base *baseType)
const;
Provides a higher-level interface for an SMT solver.
Definition solver.h:30
Definition ir/vector.h:59
Definition phv/solver/action_constraint_solver.cpp:33