¿Cómo coincide la gramática JLS con los accesos de campo simple (obj.f)?
Estaba mirando elJLS Capítulo 19 gramática tratando de descubrir cómo se analiza un acceso de campo simple:
obj.field
A mí me parece la primera variante de laFieldAccess la producción probablemente esté involucrada
FieldAccess:
Primario.
Identificadorsuper
.
IdentificadorEscribe un nombre
.
super
.
Identificadory esoPrimario entonces debería participar en el análisis delobj
parte.Primario no parece estar involucrado con el análisis de una referencia simple comoExpressionName. Eso parece ser alcanzado a través dePostfixExpression.
PostfixExpression:
PrimarioExpressionName
PostIncrementExpression
PostDecrementExpression
y, AFAICT,PostfixExpression no es recursivo a la izquierda conPrimario.
¿Me estoy perdiendo de algo?
¿Hay alguna otra forma en que unPrimario toca fondo en unExpressionName oNombre ambiguo?
EDITAR:
Hice unaDOT → gráfico SVG de las relaciones entre no terminales en la gramática. Si un borde es azul, entonces hay un uso recursivo a la izquierda por el no terminal al comienzo del no terminal que sigue a la punta de la flecha.