8#ifndef FRONTENDS_P4_EXTERNINSTANCE_H_
9#define FRONTENDS_P4_EXTERNINSTANCE_H_
13#include "frontends/p4/parameterSubstitution.h"
14#include "lib/cstring.h"
17class ConstructorCallExpression;
43 const std::optional<cstring> name;
44 const IR::Expression *expression;
45 const IR::Type_Extern *type;
49 const IR::IAnnotated *annotations;
61 static std::optional<ExternInstance>
resolve(
63 const std::optional<cstring> &defaultName = std::nullopt);
69 static std::optional<ExternInstance>
resolve(
const IR::PathExpression *path,
79 static std::optional<ExternInstance>
resolve(
80 const IR::ConstructorCallExpression *constructorCallExpr,
ReferenceMap *refMap,
81 TypeMap *typeMap,
const std::optional<cstring> &name = std::nullopt);
Definition ir/vector.h:59
Definition parameterSubstitution.h:30
Class used to encode maps from paths to declarations.
Definition referenceMap.h:67
Definition constantParsing.h:22
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13
Definition externInstance.h:42
static std::optional< ExternInstance > resolve(const IR::Expression *expr, ReferenceMap *refMap, TypeMap *typeMap, const std::optional< cstring > &defaultName=std::nullopt)
Definition externInstance.cpp:15