55 void container(
const IR::IContainer *type);
57 void distinctParameters(
const IR::TypeParameters *typeParams,
const IR::ParameterList *apply,
58 const IR::ParameterList *constr);
62 void postorder(
const IR::Annotations *annotations)
override;
63 void postorder(
const IR::P4Program *program)
override;
64 void postorder(
const IR::Constant *c)
override;
65 void postorder(
const IR::SwitchStatement *statement)
override;
66 void postorder(
const IR::Method *t)
override;
67 void postorder(
const IR::StructField *f)
override;
68 void postorder(
const IR::ParserState *s)
override;
69 void postorder(
const IR::P4Table *t)
override;
70 void postorder(
const IR::Type_Bits *type)
override;
71 void postorder(
const IR::Type_Varbits *type)
override;
72 void postorder(
const IR::ConstructorCallExpression *expression)
override;
73 void postorder(
const IR::Declaration_Variable *decl)
override;
74 void postorder(
const IR::Declaration_Instance *inst)
override;
75 void postorder(
const IR::Declaration_Constant *decl)
override;
76 void postorder(
const IR::EntriesList *l)
override;
77 void postorder(
const IR::ReturnStatement *statement)
override;
78 void postorder(
const IR::ExitStatement *statement)
override;
79 void postorder(
const IR::Type_Package *package)
override { container(package); }
80 void postorder(
const IR::P4Control *control)
override {
82 distinctParameters(control->getTypeParameters(), control->getApplyParameters(),
83 control->getConstructorParameters());
85 void postorder(
const IR::P4Parser *parser)
override {
86 auto start = parser->states.getDeclaration(IR::ParserState::start);
88 ::P4::error(ErrorType::ERR_INVALID,
"Parser %1% has no 'start' state", parser);
91 distinctParameters(parser->getTypeParameters(), parser->getApplyParameters(),
92 parser->getConstructorParameters());
94 void postorder(
const IR::Dots *dots)
override;
95 void postorder(
const IR::BreakStatement *s)
override;
96 void postorder(
const IR::ContinueStatement *s)
override;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24
void error(const char *format, Args &&...args)
Report an error with the given message.
Definition lib/error.h:51