code: private void _ident() throws
        IOException,
        CssException
    {
  
      builder.type = Type.IDENT;
  
      Optional<CssEscape> esc = escapes.get(0);
  
      // first NMSTART char or '-'
      if (esc.isPresent())
      {
        int length = esc.get().render(builder, NMSTART);
        reader.forward(length);
      }
      else
      {
        builder.append(cur);
      }
  
      if (cur == '-' || (esc.isPresent() && esc.get().character == '-'))
      {
        // The NMSTART that matched in the main loop if clause
        if (escapes.get(1).isPresent())
        {
          reader.forward(escapes.get(1).get().render(builder, NMSTART));
        }
        else
        {
          builder.append(reader.next());
        }
  
      }
      append(NMCHAR);
    }
docs: IDENT ([-]?{nmstart}|[--]){nmchar}*