1#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SMALL_STEP_TABLE_STEPPER_H_
2#define BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SMALL_STEP_TABLE_STEPPER_H_
8#include "backends/p4tools/common/lib/table_utils.h"
10#include "lib/cstring.h"
12#include "backends/p4tools/modules/testgen/core/program_info.h"
13#include "backends/p4tools/modules/testgen/core/small_step/expr_stepper.h"
14#include "backends/p4tools/modules/testgen/lib/execution_state.h"
15#include "backends/p4tools/modules/testgen/lib/test_spec.h"
17namespace P4::P4Tools::P4Testgen {
40 const IR::Type *type,
const IR::P4Table *
table,
cstring name,
41 std::optional<int> idx1_opt = std::nullopt, std::optional<int> idx2_opt = std::nullopt);
53 static const IR::StateVariable &getTableResultVar(
const IR::P4Table *
table);
69 void addDefaultAction(std::optional<const IR::Expression *> tableMissCondition);
77 const IR::MethodCallExpression *actionCall);
91 const IR::Expression *hitCondition);
97 const IR::Expression *
computeHit(TableMatchMap *matches);
102 const std::vector<const IR::ActionListElement *> &tableActionList);
137 virtual void evalTargetTable(
const std::vector<const IR::ActionListElement *> &tableActionList);
139 void setTableDefaultEntries(
const std::vector<const IR::ActionListElement *> &tableActionList);