47 struct ConstructorMap {
51 void clear() { tmpName.clear(); }
52 void add(
const IR::ConstructorCallExpression *expression,
cstring name) {
53 CHECK_NULL(expression);
54 tmpName[expression] = name;
56 bool empty()
const {
return tmpName.empty(); }
59 enum class Region { InParserStateful, InControlStateful, InBody, Outside };
69 const IR::Node *preorder(IR::P4Parser *parser)
override;
71 const IR::Node *postorder(IR::P4Parser *parser)
override;
72 const IR::Node *preorder(IR::P4Control *control)
override;
73 const IR::Node *postorder(IR::P4Control *control)
override;
74 const IR::Node *preorder(IR::P4Table *table)
override;
75 const IR::Node *postorder(IR::ConstructorCallExpression *expression)
override;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13