anchor.diff:      | K_COUNT                       { $s = "count"; }
       ;
   
  -functionArgs returns [std::vector<cql3::expr::expression> a]
  +functionArgs returns [std::vector<expression> a]
       : '(' ')'
       | '(' t1=term { a.push_back(std::move(t1)); }
             ( ',' tn=term { a.push_back(std::move(tn)); } )*
          ')'
       ;
   
  -term returns [cql3::expr::expression term1]
  +term returns [expression term1]
       : v=value                          { $term1 = std::move(v); }
  -    | f=functionName args=functionArgs { $term1 = cql3::expr::function_call{std::move(f), std::move(args)}; }
  -    | '(' c=comparatorType ')' t=term  { $term1 = cql3::expr::cast{std::move(t), c}; }
  +    | f=functionName args=functionArgs { $term1 = function_call{std::move(f), std::move(args)}; }
  +    | '(' c=comparatorType ')' t=term  { $term1 = cast{std::move(t), c}; }
       ;
   
   columnOperation[operations_type& operations]
  
positive.code:     @init {
          auto attrs = std::make_unique<cql3::attributes::raw>();
          std::vector<::shared_ptr<cql3::column_identifier::raw>> column_names;
          std::vector<cql3::expr::expression> values;
          bool if_not_exists = false;
          bool default_unset = false;
          std::optional<cql3::expr::expression> json_value;
      }
      : K_INSERT K_INTO cf=columnFamilyName
          ('(' c1=cident { column_names.push_back(c1); }  ( ',' cn=cident { column_names.push_back(cn); } )* ')'
  
negative.code: selectStatement 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;
          bool is_json = false;
  