3

我有一个解析器,它由具有许多不同标记的词法分析器提供。我想编写一个解析器来解析除一个之外的任何令牌。boost::spirit 文档为没有词法分析器的情况提供了示例:

confix("/*", "*/")[*(char_ - "*/")]  // C style comment

confix("//", eol)[*(char_ - eol)]    // C++ style comment

在第二个示例中,char_解析器解析任何输入,因此(char_ - eol)解析除行尾之外的任何内容。

我想达到同样的效果,但不知道如何创建一个接受任何输入令牌的解析器。当然,我可以在一个解析器中列出我所有的标记作为选项,并将这个用作“任何解析器”。

但是,这很容易出错,因为我必须记住将每个新标记添加到此解析器。

4

0 回答 0