56 struct ConstructorMap {
60 void clear() { tmpName.clear(); }
61 void add(
const IR::ConstructorCallExpression *expression,
cstring name) {
62 CHECK_NULL(expression);
63 tmpName[expression] = name;
65 bool empty()
const {
return tmpName.empty(); }
68 enum class Region { InParserStateful, InControlStateful, InBody, Outside };
78 const IR::Node *preorder(IR::P4Parser *parser)
override;
80 const IR::Node *postorder(IR::P4Parser *parser)
override;
81 const IR::Node *preorder(IR::P4Control *control)
override;
82 const IR::Node *postorder(IR::P4Control *control)
override;
83 const IR::Node *preorder(IR::P4Table *table)
override;
84 const IR::Node *postorder(IR::ConstructorCallExpression *expression)
override;
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24