0

解析器生成器是否有用于块、行或内联注释的内置标记?例如注释块"(*" Exp "*)"或内联注释"//" Exp

在像 menhir 这样的解析器生成器中,我通常会通过与词法分析器的模式匹配来处理注释,因此注释不会成为 AST 的一部分。K中是否有等价物?

如果不是,推荐的实施意见的方式是什么?

4

1 回答 1

1

#Layout您可以通过一组正则表达式终端(即 )的管道将内置排序声明为串联r"//[^\\n]*"。任何将 lex 作为这些标记之一的标记都被词法分析器简单地丢弃,而解析器甚至看不到它们。请注意,这仅适用于使用生成的解析器解析术语或kast; .k 文件中的解析规则仍然需要通常的 K 语法来注释。

请注意,这也是空格的解析方式,因此除非您的语言对空格敏感,否则请确保包含#Layout您希望解析器忽略的任何空格字符。

于 2020-06-30T19:44:48.133 回答