0

我正在开发一些语法树同步工具,并尝试为一小部分 Java 编写解析器;我对 Java 10 语法规范感到困惑,并认为 的定义FieldAccess是错误的。

在我看来, of 的语法FieldAccess类似于obj.x,其中obj是一个标识符(或类似的东西)。

但似乎 for 的语法FieldAccess不能产生obj.x

FieldAccess:
Primary . Identifier 
super . Identifier 
TypeName . super . Identifier

因为的定义Primary

Primary:
PrimaryNoNewArray 
ArrayCreationExpression

其中两个非终结符都不能是Identifier

FieldAccess我相信应该的语法是
PostfixExpression . Identifier,非终结符'比'高一层'
在哪里:PostfixExpressionPrimary

PostfixExpression:
Primary 
ExpressionName 
PostIncrementExpression 
PostDecrementExpression

这样ExpressionName最终可以根据需要生成标识符

ExpressionName:
Identifier
AmbiguousName . Identifier

谁能给我一些意见,或者告诉我一个合适的地方来报告这个问题?
我只能在 Java 平台的实现中找到报告错误的地方,而在语言规范中几乎找不到报告错误的地方。

4

0 回答 0