5

在为语言解析器定义语法时,您如何处理文本中任何位置可能出现的注释(例如 /* .... */)?

当事物结构化时,从标签中的标签构建语法似乎效果很好,但评论似乎会抛出一切。

您只需要分两步解析文本吗?首先删除这些项目,然后再分解代码的实际结构?

谢谢

4

2 回答 2

4

通常,词法分析器会在主语法范围之外处理注释。实际上,它们(通常)被视为空白。

于 2011-09-26T13:46:08.150 回答
2

一种方法是使用单独的词法分析器。另一种更灵活的方法是使用隐式空格前缀修改所有类似标记的条目(关键字、词法元素等),该前缀对当前上下文有效。这就是大多数现代 Packrat 解析器处理空格的方式。

于 2011-09-26T14:07:25.503 回答