anchor.diff:   *   ...
    * APPLY BATCH
    */
  -batchStatement returns [BatchStatement.Parsed expr]
  +batchStatement returns [shared_ptr<cql3::statements::batch_statement::parsed> expr]
       @init {
  -        BatchStatement.Type type = BatchStatement.Type.LOGGED;
  -        List<ModificationStatement.Parsed> statements = new ArrayList<ModificationStatement.Parsed>();
  -        Attributes.Raw attrs = new Attributes.Raw();
  +        using btype = cql3::statements::batch_statement::type; 
  +        btype type = btype::LOGGED;
  +        std::vector<shared_ptr<cql3::statements::modification_statement::parsed>> statements;
  +        auto attrs = make_shared<cql3::attributes::raw>();
       }
       : K_BEGIN
  -      ( K_UNLOGGED { type = BatchStatement.Type.UNLOGGED; } | K_COUNTER { type = BatchStatement.Type.COUNTER; } )?
  +      ( K_UNLOGGED { type = btype::UNLOGGED; } | K_COUNTER { type = btype::COUNTER; } )?
         K_BATCH ( usingClause[attrs] )?
  -          ( s=batchStatementObjective ';'? { statements.add(s); } )*
  +          ( s=batchStatementObjective ';'? { statements.push_back(std::move(s)); } )*
         K_APPLY K_BATCH
         {
  -          return new BatchStatement.Parsed(type, attrs, statements);
  +          $expr = ::make_shared<cql3::statements::batch_statement::parsed>(type, std::move(attrs), std::move(statements));
         }
       ;
   
  -batchStatementObjective returns [ModificationStatement.Parsed statement]
  +batchStatementObjective returns [shared_ptr<cql3::statements::modification_statement::parsed> statement]
       : i=insertStatement  { $statement = i; }
       | u=updateStatement  { $statement = u; }
       | d=deleteStatement  { $statement = d; }
       ;
   
  +#if 0
   createAggregateStatement returns [CreateAggregateStatement expr]
       @init {
           boolean orReplace = false;
  
positive.code:     : K_USING K_TIMESTAMP ts=intValue { attrs->timestamp = ts; }
      ;
  
  #if 0
  /**
   * BEGIN BATCH
   *   UPDATE <CF> SET name1 = value1 WHERE KEY = keyname1;
  
negative.code: #include "cql3/statements/update_statement.hh"
  #include "cql3/statements/delete_statement.hh"
  #include "cql3/statements/use_statement.hh"
  #include "cql3/statements/batch_statement.hh"
  #include "cql3/statements/ks_prop_defs.hh"
  #include "cql3/selection/raw_selector.hh"
  #include "cql3/constants.hh"
  