10#ifndef FRONTENDS_P4_EVALUATOR_SUBSTITUTEPARAMETERS_H_
11#define FRONTENDS_P4_EVALUATOR_SUBSTITUTEPARAMETERS_H_
13#include "frontends/common/resolveReferences/resolveReferences.h"
14#include "frontends/p4/parameterSubstitution.h"
15#include "frontends/p4/typeChecking/typeSubstitutionVisitor.h"
20class SubstituteParameters :
public TypeVariableSubstitutionVisitor,
public ResolutionContext {
31 : TypeVariableSubstitutionVisitor(tvs), refMap(refMap), subst(subst) {
35 setName(
"SubstituteParameters");
36 LOG1(
"Will substitute " << std::endl << subst << bindings);
38 using TypeVariableSubstitutionVisitor::postorder;
39 const IR::Node *postorder(IR::PathExpression *expr)
override;
40 const IR::Node *postorder(IR::Type_Name *type)
override;
41 const IR::Node *postorder(IR::This *t)
override;
Definition referenceMap.h:48
Definition parameterSubstitution.h:21
bool useParameterSourceInfo(const IR::Expression *replacement) const
Use the parameter's location for compiler temporaries or arguments with no source location.
Definition substituteParameters.cpp:10
Definition typeSubstitution.h:64
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13