x-----x
als (x--) -- -x
analysiert wird, und hier --
wird auf einen Ausdruck angewendet, die keine Variable ist. Das ist nicht erlaubt.
Der Grund dafür ist der folgende. Die erste Stufe beim Parsen ist das Token des Eingabestroms: Der Eingabestrom, der aus Zeichen besteht, wird in Chunks gruppiert, die Token genannt werden. Token sind Zeichenketten, die für Java bedeutsam sind, z. Schlüsselwörter, Operatoren oder Identifikatoren.
Tokenisierung ist gierig: Solange ein anderes Zeichen zum Token hinzugefügt werden kann, so dass es noch ein gültiges Token ist, wird das Zeichen hinzugefügt. So wird beispielsweise forLoop
als eine einzelne Kennung betrachtet und nicht als das Schlüsselwort for
, gefolgt von der Kennung Loop
. Die Zeichenfolgen -
und --
sind beide gültige Token in Java. Wenn der Tokenizer auf ---
trifft, liest er das erste Zeichen. Obwohl es weiß, dass -
ein gültiges Token ist, schaut es zuerst auf das nächste Zeichen und entscheidet, dass --
auch ein gültiges Token ist, so dass das erste zurückgegebene Token --
ist, nicht .
Es gibt einen Unterschied zwischen x --- x und x-- - x. Wie soll der Compiler wissen, ob Sie x - --x oder x-- - x meinen? – Stultuske