anchor.diff:      | st45=detachServiceLevelStatement { $stmt = std::move(st45); }
       | st46=listServiceLevelStatement { $stmt = std::move(st46); }
       | st47=listServiceLevelAttachStatement { $stmt = std::move(st47); }
  +    | st48=pruneMaterializedViewStatement  { $stmt = std::move(st48); }
       ;
   
   /*
  
positive.code:         | K_SERVICE
          | K_LEVEL
          | K_LEVELS
          ) { $str = $k.text; }
      ;
  
  
negative.code:     | c=cident '[' t=term ']' { $op = std::make_unique<cql3::operation::element_deletion>(std::move(c), std::move(t)); }
      | c=cident '.' field=ident { $op = std::make_unique<cql3::operation::field_deletion>(std::move(c), std::move(field)); }
      ;
  
  pruneMaterializedViewStatement returns [std::unique_ptr<raw::select_statement> expr]
      @init {
          bool is_distinct = false;
          std::optional<expression> limit;
          std::optional<expression> per_partition_limit;
          raw::select_statement::parameters::orderings_type orderings;
          bool allow_filtering = false;
          raw::select_statement::parameters::statement_subtype statement_subtype = raw::select_statement::parameters::statement_subtype::PRUNE_MATERIALIZED_VIEW;
          bool bypass_cache = false;
          auto attrs = std::make_unique<cql3::attributes::raw>();
      }
  	: K_PRUNE K_MATERIALIZED K_VIEW cf=columnFamilyName (K_WHERE wclause=whereClause)? ( usingClause[attrs] )?
  	  {
  	        auto params = make_lw_shared<raw::select_statement::parameters>(std::move(orderings), is_distinct, allow_filtering, statement_subtype, bypass_cache);
  	        return std::make_unique<raw::select_statement>(std::move(cf), std::move(params),
              std::vector<shared_ptr<raw_selector>>(), std::move(wclause), std::move(limit), std::move(per_partition_limit),
              std::vector<::shared_ptr<cql3::column_identifier::raw>>(), std::move(attrs));
  	  }
  	;
  
  /**
   * BEGIN BATCH
  