2010-03-22 10 views

Respuesta

31

Actualización de 2017: Hubo una actualización importante del analizador y la nueva ya no parece ser compatible con estas palabras de huevo de Pascua.


se parece a un huevo de Pascua en el analizador léxico para mí:

https://github.com/golang/go/blob/08e25fc1ba397e02ec776561ed73b7f9a8b94392/src/cmd/compile/internal/gc/lex.go#L2152-L2156

la sección pertinente es la tabla de símbolos:

"notwithstanding",  LIGNORE, Txxx,  OXXX, 
"thetruthofthematter", LIGNORE, Txxx,  OXXX, 
"despiteallobjections", LIGNORE, Txxx,  OXXX, 
"whereas",    LIGNORE, Txxx,  OXXX, 
"insofaras",   LIGNORE, Txxx,  OXXX, 

supongo que podría ser utilizado para poner a prueba manejo del tipo léxico LIGNORE, pero no parece haber tokens "reales" ignorados.

+2

ugh, su función lexer tiene una etiqueta llamada 'l0' (el-zero) para la declaración inicial. los compiladores deberían estar diseñados para eliminar su código si realmente usa l0 como un identificador en su código. – Jimmy

+0

¿Qué sucede si trabaja en un dominio donde l0 tiene un significado específico? Después de todo minúsculas pi es solo una letra en griego, pero todavía lo aceptamos como el nombre de un identificador, ya que sabemos lo que significa. –

+2

@ Jørgen Fogh: No estaba hablando en serio, pero sí provocó otra respuesta a esta pregunta (que desde entonces se ha eliminado) para decir: "Todos estos puntos apuntan a" GOTO 10 "que no puedo encontrar en este momento" que ilustra perfectamente el problema. Por supuesto, puede haber excepciones a cada regla. – Jimmy

Cuestiones relacionadas