code: private void _urange() throws
        IOException,
        CssException
    {
      if (debug)
      {
        checkArgument((reader.curChar == 'U' || reader.curChar == 'u')
            && reader.peek() == '+');
      }
  
      builder.type = Type.URANGE;
      reader.next(); // '+'
  
      List<Integer> cbuf = Lists.newArrayList();
  
      int count = 0;
  
      while (true)
      {
        Mark mark = reader.mark();
        int ch = reader.next();
  
        if (ch == -1)
        {
          reader.unread(ch, mark);
          break;
        }
  
        if (URANGECHAR.matches((char) ch))
        {
          count = ch == '-' ? 0 : count + 1;
          if (count == 7)
          {
            builder.error(CssErrorCode.SCANNER_ILLEGAL_URANGE, reader,
                "U+" + toString(cbuf) + (char) ch);
          }
          cbuf.add(ch);
        }
        else
        {
          reader.unread(ch, mark);
          break;
        }
      }
      builder.append("U+");
      builder.append(Ints.toArray(cbuf));
    }
docs: Builds a UNICODE_RANGE token.