Путаница в спецификации грамматики Java 10 (FieldAccess кажется неправильным)
Я работаю над некоторыми инструментами синхронизации синтаксического дерева и пытаюсь написать синтаксический анализатор для небольшого подмножества Java; Я запутался в спецификации грамматики Java 10 и считаю, что определение FieldAccess
неправильно.
На мой взгляд, грамматика FieldAccess
это что-то вроде obj.x
, в котором obj
это идентификатор (или что-то похожее).
Но похоже, что грамматика для 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, но вряд ли место для сообщения об ошибках в спецификации языка.