17#ifndef FRONTENDS_P4_EXTERNINSTANCE_H_
18#define FRONTENDS_P4_EXTERNINSTANCE_H_
22#include "frontends/p4/parameterSubstitution.h"
23#include "lib/cstring.h"
26class ConstructorCallExpression;
52 const std::optional<cstring> name;
53 const IR::Expression *expression;
54 const IR::Type_Extern *type;
58 const IR::IAnnotated *annotations;
70 static std::optional<ExternInstance>
resolve(
72 const std::optional<cstring> &defaultName = std::nullopt);
78 static std::optional<ExternInstance>
resolve(
const IR::PathExpression *path,
88 static std::optional<ExternInstance>
resolve(
89 const IR::ConstructorCallExpression *constructorCallExpr,
ReferenceMap *refMap,
90 TypeMap *typeMap,
const std::optional<cstring> &name = std::nullopt);
Definition parameterSubstitution.h:30
Class used to encode maps from paths to declarations.
Definition referenceMap.h:66
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24
Definition externInstance.h:51
static std::optional< ExternInstance > resolve(const IR::Expression *expr, ReferenceMap *refMap, TypeMap *typeMap, const std::optional< cstring > &defaultName=std::nullopt)
Definition externInstance.cpp:26