36class DoTableHit :
public Transform,
public ResolutionContext {
38 enum op_t { None, And, Or, Xor };
40 const IR::Node *process(IR::BaseAssignmentStatement *statement, op_t op);
43 const IR::Node *postorder(IR::BaseAssignmentStatement *statement)
override {
44 return process(statement, None);
46 const IR::Node *postorder(IR::OpAssignmentStatement *statement)
override {
return statement; }
47 const IR::Node *postorder(IR::BAndAssign *statement)
override {
48 return process(statement, And);
50 const IR::Node *postorder(IR::BOrAssign *statement)
override {
return process(statement, Or); }
51 const IR::Node *postorder(IR::BXorAssign *statement)
override {
52 return process(statement, Xor);
55 explicit DoTableHit(
TypeMap *typeMap) : typeMap(typeMap) {
57 setName(
"DoTableHit");
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24