7#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SMALL_STEP_CMD_STEPPER_H_
8#define BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SMALL_STEP_CMD_STEPPER_H_
16#include "lib/cstring.h"
18#include "backends/p4tools/modules/testgen/core/program_info.h"
19#include "backends/p4tools/modules/testgen/core/small_step/abstract_stepper.h"
20#include "backends/p4tools/modules/testgen/lib/continuation.h"
21#include "backends/p4tools/modules/testgen/lib/execution_state.h"
23namespace P4::P4Tools::P4Testgen {
26class CmdStepper :
public AbstractStepper {
30 bool preorder(
const IR::AssignmentStatement *assign)
override;
31 bool preorder(
const IR::P4Parser *p4parser)
override;
32 bool preorder(
const IR::P4Control *p4control)
override;
33 bool preorder(
const IR::EmptyStatement *empty)
override;
34 bool preorder(
const IR::IfStatement *ifStatement)
override;
35 bool preorder(
const IR::MethodCallStatement *methodCallStatement)
override;
36 bool preorder(
const IR::P4Program *program)
override;
37 bool preorder(
const IR::ParserState *parserState)
override;
38 bool preorder(
const IR::BlockStatement *block)
override;
39 bool preorder(
const IR::ExitStatement *e)
override;
40 bool preorder(
const IR::SwitchStatement *switchStatement)
override;
50 virtual std::optional<const Constraint *>
startParserImpl(
const IR::P4Parser *parser,
Provides a higher-level interface for an SMT solver.
Definition solver.h:30
A continuation body is a list of commands.
Definition continuation.h:135
IR::Expression Constraint
Represents a constraint that can be shipped to and asserted within a solver.
Definition solver.h:23
Definition phv/solver/action_constraint_solver.cpp:33