27class DoTableHit :
public Transform,
public ResolutionContext {
29 enum op_t { None, And, Or, Xor };
31 const IR::Node *process(IR::BaseAssignmentStatement *statement, op_t op);
34 const IR::Node *postorder(IR::BaseAssignmentStatement *statement)
override {
35 return process(statement, None);
37 const IR::Node *postorder(IR::OpAssignmentStatement *statement)
override {
return statement; }
38 const IR::Node *postorder(IR::BAndAssign *statement)
override {
39 return process(statement, And);
41 const IR::Node *postorder(IR::BOrAssign *statement)
override {
return process(statement, Or); }
42 const IR::Node *postorder(IR::BXorAssign *statement)
override {
43 return process(statement, Xor);
46 explicit DoTableHit(
TypeMap *typeMap) : typeMap(typeMap) {
48 setName(
"DoTableHit");
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13