如何使用EBNF语法解析注释

时间:2011-09-26 13:38:20

标签: parsing context-free-grammar ebnf

在为语言分析器定义语法时,如何处理文本中任何时候可能出现的注释(例如/ * .... * /)等内容?

从标签中的标签构建语法似乎在事物结构化时效果很好,但评论似乎抛出了所有内容。

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

由于

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

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