Dart 上使用了哪种风格的多行注释?
我知道C-style
多行注释。此样式不允许在多行注释 ( nested comments
) 内进行多行注释。
那是在多行注释中第一次遇到的'C' style
注释结束。*/
例子:
有效的 C 风格评论:
/*
*/
无效的 C 样式注释:
/*
/**/
*/
在 Dart 中,这两种样式都是有效的,但据我所知,在大多数流行语言中只使用了C-style
注释。
这是我的问题。
Dart 语言中的这种风格从何而来?From a historical point of view and practical
.
附言
我正在为 Dart 编写 PEG 解析器,当我在语法中找到它时感到很惊讶。此规则不允许在我的解析器中自动识别multilne comment
为终端,因为它自己递归调用。
MULTI_LINE_COMMENT <- '/*' (MULTI_LINE_COMMENT / !'*/' .)* '*/' ;
另外,如何用Bison/Flex
术语来描述这种多行注释?
出现这个问题是因为在 PEG 解析器术语中,注释是white spaces
. 并且white spaces
在大多数情况下可以假设为终端,因为它们不会改变行为(它们不会分支并且不会被人类逻辑递归,即由词法扫描器直接生成为标记)。
我知道在 PEG 解析器中没有终端和非终端的划分,但为了更好地报告错误,一些语法规则的启发式分析永远不会阻止