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 . Bezeichner
super . Bezeichner
Modellnam . super . Bezeichner

und 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:

Primary
ExpressionName
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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage