1#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SMALL_STEP_EXPR_STEPPER_H_
2#define BACKENDS_P4TOOLS_MODULES_TESTGEN_CORE_SMALL_STEP_EXPR_STEPPER_H_
11#include "lib/cstring.h"
13#include "backends/p4tools/modules/testgen/core/program_info.h"
14#include "backends/p4tools/modules/testgen/core/small_step/abstract_stepper.h"
15#include "backends/p4tools/modules/testgen/lib/execution_state.h"
17namespace P4Tools::P4Testgen {
49 int advanceSize)
const;
56 const IR::Expression *restrictions)
const;
61 static std::vector<std::pair<IR::StateVariable, const IR::Expression *>>
setFields(
62 ExecutionState &nextState,
const std::vector<IR::StateVariable> &flatFields,
87 const IR::Expression *receiver, IR::ID name,
102 const IR::Expression *receiver, IR::ID name,
113 void evalActionCall(
const IR::P4Action *action,
const IR::MethodCallExpression *call);
122 const IR::StateVariable &srcPath,
cstring dir,
bool forceTaint)
const;
127 virtual void stepNoMatch(std::string traceLog,
const IR::Expression *condition =
nullptr);
140 bool preorder(
const IR::BoolLiteral *boolLiteral)
override;
141 bool preorder(
const IR::Constant *constant)
override;
142 bool preorder(
const IR::Member *member)
override;
143 bool preorder(
const IR::ArrayIndex *arr)
override;
144 bool preorder(
const IR::MethodCallExpression *call)
override;
145 bool preorder(
const IR::Mux *mux)
override;
146 bool preorder(
const IR::PathExpression *pathExpression)
override;
151 bool preorder(
const IR::P4ValueSet *valueSet)
override;
152 bool preorder(
const IR::Operation_Binary *binary)
override;
153 bool preorder(
const IR::Operation_Unary *unary)
override;
154 bool preorder(
const IR::SelectExpression *selectExpression)
override;
155 bool preorder(
const IR::BaseListExpression *listExpression)
override;
156 bool preorder(
const IR::StructExpression *structExpression)
override;
157 bool preorder(
const IR::Slice *slice)
override;
158 bool preorder(
const IR::P4Table *table)
override;
Definition externInstance.h:33