关于Java语法中修饰符的问题
Java 语法定义了 ModifiersOpt: { 修饰符 }。 修饰符
被定义为public、protected、private、static
等之一...。{x}
表示零次或多次出现x。
我们知道 public public
不是有效的标识符。这是否意味着 Modifier
列表中的任何元素(例如 public
)在 {Modifier}
中仅出现一次? { Modifier }
是否有任何“标准”解析器组合器?
The Java grammar defines ModifiersOpt: { Modifier }
. Modifier
is defined as one of public, protected, private, static
etc .... {x}
denotes zero or more occurrences of x
.
We know that public public
is not a valid identifier. Does it mean that any element of the Modifier
list (e.g. public
) appears only once in {Modifier}
? Is there any "standard" parser combinator for { Modifier }
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
修饰符可以出现零次或多次。正如 aioobe 所说,虽然语法上可以接受,但
public例如 private
在语义上是无效的。有很多小情况严格按照语法是可以的,但编译器不允许。The modifiers can appear zero or more times. As aioobe said, while syntactically acceptable,
public private
for example is semantically invalid. There are lots of little situations that are fine strictly according to the grammar but are not allowed by the compiler.并非 Java 程序中的所有错误都是语法错误。例如,像
public private
这样的错误可能(正如您所发现的)被视为语义错误。作为另一个例子,我打赌语法也允许,例如
尽管如此,它不是有效的 Java 代码片段。
Not all errors in a Java program are syntactical errors. An error like
public private
for instance may (as you have discovered) be considered as a semantical error.As another example, I bet the grammar also allows, for instance
Still though, it is not a valid snippet of Java code.