我需要一个允许我解析文件的 c++ 库。它不在 XML 或任何其他标准中。看起来我可以用正则表达式来做到这一点,但我更喜欢我给它一个上下文无关语法并给我一个解析树的东西。它还必须能够接受浮点值,让我看看它们是什么。
我更喜欢我可以用整个 sudo apt-get 下载的东西,而不必自己安装。
我需要一个允许我解析文件的 c++ 库。它不在 XML 或任何其他标准中。看起来我可以用正则表达式来做到这一点,但我更喜欢我给它一个上下文无关语法并给我一个解析树的东西。它还必须能够接受浮点值,让我看看它们是什么。
我更喜欢我可以用整个 sudo apt-get 下载的东西,而不必自己安装。
如果您可以使用 C++11,则可以使用名为 PEGTL 的仅标头库,该库可在https://github.com/ColinH/PEGTL找到。它很简单,它只是标题,所以你可以下载库来使用它。
你看过 Boost.Spirit 吗?Spirit.Qi 看起来可能对您有用:http: //www.boost.org/doc/libs/1_54_0/libs/spirit/doc/html/index.html
对此的标准解决方案仍然是 lex/yacc,使用 GNU 实现 flex/bison。通常用于生成C;但也可以通过适当的参数化生成 C++。