anchor.diff:          listener->syntax_error(*this, msg);
       }
   
  -#if 0
  -    public Map<String, String> convertPropertyMap(Maps.Literal map)
  -    {
  +    std::map<sstring, sstring> convert_property_map(shared_ptr<cql3::maps::literal> map) {
  +        throw std::runtime_error("not implemented");
  +#if 0
           if (map == null || map.entries == null || map.entries.isEmpty())
               return Collections.<String, String>emptyMap();
   
  
positive.code:         }
  
          return res;
      }
  
  #endif
      void add_raw_update(std::vector<std::pair<::shared_ptr<cql3::column_identifier::raw>,::shared_ptr<cql3::operation::raw_update>>>& operations,
          ::shared_ptr<cql3::column_identifier::raw> key, ::shared_ptr<cql3::operation::raw_update> update)
      {
  
negative.code:         )
      ;
  
  properties[::shared_ptr<cql3::statements::property_definitions> props]
      : property[props] (K_AND property[props])*
      ;
  
  property[::shared_ptr<cql3::statements::property_definitions> props]
      : k=ident '=' (simple=propertyValue { try { $props->add_property(k->to_string(), simple); } catch (exceptions::syntax_exception e) { add_recognition_error(e.what()); } }
                    |   map=mapLiteral    { try { $props->add_property(k->to_string(), convert_property_map(map)); } catch (exceptions::syntax_exception e) { add_recognition_error(e.what()); } })
      ;
  
  propertyValue returns [sstring str]
      : c=constant           { $str = c->get_raw_text(); }
      | u=unreserved_keyword { $str = u; }
      ;
  
  relationType returns [const cql3::operator_type* op = nullptr]
      : '='  { $op = &cql3::operator_type::EQ; }
  