我正在开发一些语法树同步工具,并尝试为一小部分 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
,非终结符'比'高一层'
在哪里:PostfixExpression
Primary
PostfixExpression:
Primary
ExpressionName
PostIncrementExpression
PostDecrementExpression
这样ExpressionName
最终可以根据需要生成标识符
ExpressionName:
Identifier
AmbiguousName . Identifier
谁能给我一些意见,或者告诉我一个合适的地方来报告这个问题?
我只能在 Java 平台的实现中找到报告错误的地方,而在语言规范中几乎找不到报告错误的地方。