La especificación enumera las categorías de fichas pp a 2,5, pero contiene una última categoría¿Qué caracteres quedan para los pp-tokens?
cada carácter que no sea un espacio en blanco que no puede ser uno de los anteriores
tengo un tiempo difícil encontrar un ejemplo donde un token de pp que captura dicho carácter produce un programa C++ válido. Como explica 2.5, un programa puede contener un comodín "
o '
, pero el comportamiento no está definido. ¿Hay algún ejemplo de un programa válido?
Hm solo el \ carácter de esos tokens parásitos coincide con la última categoría de tokens de pp, porque ese es el único carácter en esa línea que está en el conjunto de caracteres básicos de origen. Los otros se convertirán en UCN (identificadores), ¿o me estoy perdiendo algo? Estoy aceptando esto debido a la idea '#if 0' y la idea de stringize/concatenate. ¡Gracias! –
Solo ciertos UCN pueden formar identificadores (§E). Técnicamente, creo que los tres caracteres extendidos formarían una barra inversa perdida seguida de una secuencia alfanumérica que se convierte en un identificador. Esto se debe a la regla de masticar máxima explícita. (En realidad, eso implica que las marcas diacríticas * no pueden * ser catenadas, porque solo la barra inversa principal es vista por el operador '##'!) – Potatoswatter
"puede" o "puede"? Si es "may", entonces de acuerdo con las directivas IEC, la secuencia inválida de caracteres todavía debe ser lexed como un identificador, y rechazada como no válida más adelante. –