2010-03-22 8 views

Antwort

31

2017 Update: Es gab ein großes Parser-Update und das neue scheint nicht mehr diese Osterei Worte zu unterstützen.


Sieht aus wie ein Osterei in der Lexer zu mir:

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

der entsprechende Abschnitt ist die Symboltabelle:

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

Ich denke, sie verwendet werden könnten, testen Handhabung des lexikalischen Typs LIGNORE, aber es scheint keine "echten" ignorierten Token zu geben.

+2

ugh, ihre Lexer-Funktion hat eine Bezeichnung namens 'l0' (el-zero) für die Anfangsanweisung. Compiler sollten nur dafür ausgelegt sein, Ihren Code zu löschen, wenn Sie tatsächlich l0 als Bezeichner in Ihrem Code verwenden. – Jimmy

+0

Was passiert, wenn Sie in einer Domäne arbeiten, in der l0 eine bestimmte Bedeutung hat? Nach dem Kleinbuchstaben pi ist nur ein einziger Buchstabe auf Griechisch, aber wir akzeptieren es immer noch als den Namen für eine Kennung, da wir wissen, was es bedeutet. –

+2

@ Jørgen Fogh: Ich meinte es nicht ernst, aber es gab eine andere Antwort auf diese Frage (die seitdem gelöscht wurde) zu sagen: "Theses alle verweisen auf" GOTO 10 ", die ich im Moment nicht finden kann" was das Problem perfekt veranschaulicht. Natürlich kann es Ausnahmen zu jeder Regel geben. – Jimmy