1#ifndef BACKENDS_P4TOOLS_COMMON_CORE_ABSTRACT_EXECUTION_STATE_H_ 
    2#define BACKENDS_P4TOOLS_COMMON_CORE_ABSTRACT_EXECUTION_STATE_H_ 
    4#include "backends/p4tools/common/core/target.h" 
    5#include "backends/p4tools/common/lib/namespace_context.h" 
    6#include "backends/p4tools/common/lib/symbolic_env.h" 
   50    [[nodiscard]] 
virtual const IR::Expression *
get(
const IR::StateVariable &var) 
const = 0;
 
   54    virtual void set(
const IR::StateVariable &var, 
const IR::Expression *value) = 0;
 
   57    [[nodiscard]] 
bool exists(
const IR::StateVariable &var) 
const;
 
   73    [[nodiscard]] 
const IR::Type *
resolveType(
const IR::Type *type) 
const;
 
  101        const IR::Expression *inputExpression, std::vector<const IR::Expression *> &flatValids);
 
  110        const IR::StateVariable &parent,
 
  111        std::vector<IR::StateVariable> *validVector = 
nullptr) 
const;
 
  120    void assignStructLike(
const IR::StateVariable &left, 
const IR::Expression *right);
 
  123    void setStructLike(
const IR::StateVariable &targetVar, 
const IR::StateVariable &sourceVar);
 
  131    void copyIn(
const Target &target, 
const IR::Parameter *internalParam,
 
  136    void copyOut(
const IR::Parameter *internalParam, 
cstring externalParamName);
 
  141                               const std::vector<cstring> *blockParams);
 
  145    const IR::P4Table *
findTable(
const IR::Member *member) 
const;
 
  150    [[nodiscard]] 
const IR::P4Action *
getP4Action(
const IR::MethodCallExpression *actionExpr) 
const;
 
 
The Declaration interface, representing objects with names.
Definition declaration.h:26
 
Represents a stack of namespaces.
Definition namespace_context.h:14