Wie passt die JLS-Grammatik zu einfachen Feldzugriffen (obj.f)?
Ich war auf der Suche nachJLS Kapitel 19 Grammatik versuchen herauszufinden, wie ein einfacher Feldzugriff analysiert wird:
obj.field
Es sieht für mich aus wie die erste Variante des FieldAccess Produktion ist wahrscheinlich beteiligt
FieldAccess:
Primary.
Bezeichnersuper
.
BezeichnerModellnam
.
super
.
Bezeichnerund das Primary sollte dann in das Parsen des @ einbezogen werdobj
Teil. Primary scheint nicht mit dem Parsen einer einfachen Referenz wie @ beschäftigt zu se ExpressionName. Das scheint zu erreichen über PostfixExpression.
PostfixExpression:
PrimaryExpressionName
PostIncrementExpression
PostDecrementExpression
und, AFAICT, PostfixExpression ist nicht rekursiv mit Primary.
Habe ich etwas verpasst?
Gibt es eine andere Möglichkeit, dass ein Primary Bottoms Out auf einem ExpressionName oder AmbiguousName?
BEARBEITEN
Ich machte einen PUNKT → SVG-Grafik der Beziehungen zwischen Nicht-Terminals in der Grammatik. Wenn eine Kante blau ist, gibt es eine linksrekursive Verwendung durch das Nicht-Terminal am Anfang des Nicht-Terminals, das auf die Pfeilspitze folgt.