87    bool isSimple(
const IR::Expression *expression, 
const Visitor::Context *ctxt) {
 
   88        if (
auto mask = expression->to<IR::BAnd>()) {
 
   89            if (mask->right->is<IR::Constant>())
 
   90                expression = mask->left;
 
   91            else if (mask->left->is<IR::Constant>())
 
   92                expression = mask->right;
 
   94        return IsLikeLeftValue::isSimple(expression, ctxt);
 
 
  150    std::map<const IR::P4Table *, TableInsertions *> toInsert;
 
  154        : refMap(refMap), typeMap(typeMap), key_policy(key_policy) {
 
  157        CHECK_NULL(key_policy);
 
  158        setName(
"DoSimplifyKey");
 
  160    const IR::Node *doStatement(
const IR::Statement *statement, 
const IR::Expression *expression);
 
  164    const IR::Node *postorder(IR::MethodCallStatement *statement)
 override {
 
  165        return doStatement(statement, statement->methodCall);
 
  167    const IR::Node *postorder(IR::IfStatement *statement)
 override {
 
  168        return doStatement(statement, statement->condition);
 
  170    const IR::Node *postorder(IR::SwitchStatement *statement)
 override {
 
  171        return doStatement(statement, statement->expression);
 
  173    const IR::Node *postorder(IR::AssignmentStatement *statement)
 override {
 
  174        return doStatement(statement, statement->right);
 
  176    const IR::Node *postorder(IR::KeyElement *element) 
override;
 
  177    const IR::Node *postorder(IR::P4Table *table) 
override;