Desde mi horrible experiencia con cssparser, me he propuesto la tarea de implementar un analizador de CSS en Java usando Parboiled. Ya tengo todas las especificaciones de color cubiertas, pero por supuesto necesito todo el resto ...¿Qué hace el? significa en la sección de tokenización de la especificación CSS W3C?
Así que fui a buscar la especificación CSS y la encontré en el W3C website. Ahora estoy en el proceso de escribir las reglas para todos los "átomos", pero encontré algo preocupante en this section:
UNICODE-RANGE u\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?
La parte que me molesta es el signo de interrogación en [0-9a-f?]
.
El encabezado del párrafo dice que las expresiones regulares usadas aquí son de estilo Lex. El ?
no tiene un significado especial en una clase de personaje (gracias @scizzo para la confirmación). Entonces, ¿esto es un error tipográfico en la especificación W3C, o es realmente ?
permitido en un rango Unicode? Si es así, ¿qué significa?
Concluir: Tengo mi respuesta. Sin embargo, la especificación es errónea: un "rango Unicode de interrogación" solo puede ser por sí mismo. Dada la expresión regular anterior, esta expresión estaría permitida mientras que es claramente ilegal: u+4??-733f
Esto es una cosa confirmó, lo que significa el signo de interrogación debe ser de alguna manera legal en un rango Unicode ... Pero no puedo encontrar lo que significa:/ – fge
Acaba de editar, ¿pero? es básicamente un comodín. – sczizzo
¡Muchas gracias por el enlace! – fge