在为语言分析器定义语法时,如何处理文本中任何时候可能出现的注释(例如/ * .... * /)等内容?
从标签中的标签构建语法似乎在事物结构化时效果很好,但评论似乎抛出了所有内容。
您是否只需要分两步解析文本?首先删除这些项目,然后挑选代码的实际结构?
由于
答案 0 :(得分:4)
通常,注释由主语法范围之外的词法分析器处理。实际上,它们(通常)被视为空白。
答案 1 :(得分:2)
一种方法是使用单独的词法分析器。另一种更灵活的方法是使用隐式空格前缀修改所有类似令牌的条目(关键字,词法元素等),对当前上下文有效。这就是大多数现代Packrat解析器处理空格的方式。