anchor.diff:  }
   
   @parser::traits {
  +
  +using namespace cql3;
   using namespace cql3::statements;
   using namespace cql3::selection;
  +using namespace cql3::expr;
  +
   using cql3::cql3_type;
   using conditions_type = std::vector<std::pair<::shared_ptr<cql3::column_identifier::raw>,lw_shared_ptr<cql3::column_condition::raw>>>;
   using operations_type = std::vector<std::pair<::shared_ptr<cql3::column_identifier::raw>, std::unique_ptr<cql3::operation::raw_update>>>;
  
positive.code: selectStatement returns [std::unique_ptr<raw::select_statement> expr]
      @init {
          bool is_distinct = false;
          std::optional<cql3::expr::expression> limit;
          std::optional<cql3::expr::expression> per_partition_limit;
          raw::select_statement::parameters::orderings_type orderings;
          bool allow_filtering = false;
          bool is_json = false;
  
negative.code:               // We don't yet allow a '+' in front of an integer, but we could in the future really, so let's be future-proof in our error message
                add_recognition_error("Only expressions of the form X = X " + sstring($i.text[0] == '-' ? "-" : "+") + " <value> are supported.");
            }
            add_raw_update(operations, key, std::make_unique<cql3::operation::addition>(untyped_constant{untyped_constant::integer, $i.text}));
        }
      | K_SCYLLA_COUNTER_SHARD_LIST '(' t=term ')'
        {
  