P4C
The P4 Compiler
Loading...
Searching...
No Matches
targets/bmv2/cmd_stepper.h
1/*
2 * SPDX-FileCopyrightText: 2022 The P4 Language Consortium
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_BMV2_CMD_STEPPER_H_
8#define BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_BMV2_CMD_STEPPER_H_
9
10#include <map>
11#include <optional>
12#include <string>
13
14#include "ir/ir.h"
15#include "ir/solver.h"
16
17#include "backends/p4tools/modules/testgen/core/program_info.h"
18#include "backends/p4tools/modules/testgen/core/small_step/cmd_stepper.h"
19#include "backends/p4tools/modules/testgen/lib/continuation.h"
20#include "backends/p4tools/modules/testgen/lib/execution_state.h"
21#include "backends/p4tools/modules/testgen/targets/bmv2/program_info.h"
22
24
25class Bmv2V1ModelCmdStepper : public CmdStepper {
26 protected:
27 std::string getClassName() override { return "Bmv2V1ModelCmdStepper"; }
28
29 const Bmv2V1ModelProgramInfo &getProgramInfo() const override;
30
31 void initializeTargetEnvironment(ExecutionState &nextState) const override;
32
33 std::optional<const Constraint *> startParserImpl(const IR::P4Parser *parser,
34 ExecutionState &nextState) const override;
35
36 std::map<Continuation::Exception, Continuation> getExceptionHandlers(
37 const IR::P4Parser *parser, Continuation::Body normalContinuation,
38 const ExecutionState &nextState) const override;
39
40 public:
43};
44
45} // namespace P4::P4Tools::P4Testgen::Bmv2
46
47#endif /* BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_BMV2_CMD_STEPPER_H_ */
Provides a higher-level interface for an SMT solver.
Definition solver.h:30
const ProgramInfo & programInfo
Target-specific information about the P4 program being evaluated.
Definition abstract_stepper.h:52
Definition targets/bmv2/cmd_stepper.h:25
void initializeTargetEnvironment(ExecutionState &nextState) const override
Definition targets/bmv2/cmd_stepper.cpp:47
std::map< Continuation::Exception, Continuation > getExceptionHandlers(const IR::P4Parser *parser, Continuation::Body normalContinuation, const ExecutionState &nextState) const override
Definition targets/bmv2/cmd_stepper.cpp:118
std::optional< const Constraint * > startParserImpl(const IR::P4Parser *parser, ExecutionState &nextState) const override
Definition targets/bmv2/cmd_stepper.cpp:108
std::string getClassName() override
Definition targets/bmv2/cmd_stepper.h:27
Definition targets/bmv2/program_info.h:21
A continuation body is a list of commands.
Definition continuation.h:135
Represents state of execution after having reached a program point.
Definition execution_state.h:40
Stores target-specific information about a P4 program.
Definition core/program_info.h:27
Inja.
Definition targets/bmv2/cmd_stepper.cpp:37
Definition phv/solver/action_constraint_solver.cpp:33