anchor.diff:          std::vector<::shared_ptr<index_target::raw>> targets;
       }
       : K_CREATE (K_CUSTOM { props->is_custom = true; })? K_INDEX (K_IF K_NOT K_EXISTS { if_not_exists = true; } )?
  -        (idxName[name])? K_ON cf=columnFamilyName '(' (target1=indexIdent { targets.emplace_back(target1); } (',' target2=indexIdent { targets.emplace_back(target2); } )*)? ')'
  +        (idxName[*name])? K_ON cf=columnFamilyName '(' (target1=indexIdent { targets.emplace_back(target1); } (',' target2=indexIdent { targets.emplace_back(target2); } )*)? ')'
           (K_USING cls=STRING_LITERAL { props->custom_class = sstring{$cls.text}; })?
  -        (K_WITH properties[props])?
  +        (K_WITH properties[*props])?
         { $expr = ::make_shared<create_index_statement>(cf, name, targets, props, if_not_exists); }
       ;
   
  
positive.code:         bool if_not_exists = false;
      }
      : K_CREATE K_KEYSPACE (K_IF K_NOT K_EXISTS { if_not_exists = true; } )? ks=keyspaceName
        K_WITH properties[attrs] { $expr = ::make_shared<cql3::statements::create_keyspace_statement>(ks, attrs, if_not_exists); }
      ;
  
  /**
  
negative.code:     | QMARK {add_recognition_error("Bind variables cannot be used for role names");}
      ;
  
  ksName[cql3::keyspace_element_name& name]
      : t=IDENT              { $name.set_keyspace($t.text, false);}
      | t=QUOTED_NAME        { $name.set_keyspace($t.text, true);}
      | k=unreserved_keyword { $name.set_keyspace(k, false);}
      | QMARK {add_recognition_error("Bind variables cannot be used for keyspace names");}
      ;
  
  cfName[cql3::cf_name& name]
      : t=IDENT              { $name.set_column_family($t.text, false); }
      | t=QUOTED_NAME        { $name.set_column_family($t.text, true); }
      | k=unreserved_keyword { $name.set_column_family(k, false); }
      | QMARK {add_recognition_error("Bind variables cannot be used for table names");}
      ;
  
  idxName[cql3::index_name& name]
      : t=IDENT              { $name.set_index($t.text, false); }
      | t=QUOTED_NAME        { $name.set_index($t.text, true);}
      | k=unreserved_keyword { $name.set_index(k, false); }
      | QMARK {add_recognition_error("Bind variables cannot be used for index names");}
      ;
  
  