anchor.diff:        { $expr = new DropTriggerStatement(cf, name.toString(), ifExists); }
       ;
   
  +#endif
  +
   /**
    * ALTER KEYSPACE <KS> WITH <property> = <value>;
    */
  -alterKeyspaceStatement returns [AlterKeyspaceStatement expr]
  -    @init { KSPropDefs attrs = new KSPropDefs(); }
  +alterKeyspaceStatement returns [shared_ptr<cql3::statements::alter_keyspace_statement> expr]
  +    @init {
  +        auto attrs = make_shared<cql3::statements::ks_prop_defs>();
  +    }
       : K_ALTER K_KEYSPACE ks=keyspaceName
  -        K_WITH properties[attrs] { $expr = new AlterKeyspaceStatement(ks, attrs); }
  -    ;
  -#endif
  +        K_WITH properties[attrs] { $expr = make_shared<cql3::statements::alter_keyspace_statement>(ks, attrs); }
  +    ;
   
   /**
    * ALTER COLUMN FAMILY <CF> ALTER <column> TYPE <newtype>;
  
positive.code: 
  @parser::includes {
  #include "cql3/selection/writetime_or_ttl.hh"
  #include "cql3/statements/alter_table_statement.hh"
  #include "cql3/statements/create_keyspace_statement.hh"
  #include "cql3/statements/drop_keyspace_statement.hh"
  
negative.code:     | st13=dropIndexStatement          { $stmt = st13; }
  #endif
      | st14=alterTableStatement         { $stmt = st14; }
      | st15=alterKeyspaceStatement      { $stmt = st15; }
      | st16=grantStatement              { $stmt = st16; }
      | st17=revokeStatement             { $stmt = st17; }
      | st18=listPermissionsStatement    { $stmt = st18; }
  