C++ 17 添加于 Boost 1.87.0
分类: 解析
一个解析器组合器库。
本次发布
依赖项
解析器
这是一个用于 C++ 的解析器组合器库。作为一个快速的示例,下面是一个完整的程序,它解析一个或多个由逗号分隔的 double 值,并忽略空格。
#include <boost/parser/parser.hpp>
#include <iostream>
#include <string>
namespace bp = boost::parser;
int main()
{
std::cout << "Enter a list of doubles, separated by commas. No pressure. ";
std::string input;
std::getline(std::cin, input);
auto const result = bp::parse(
input, bp::double_ >> *(',' >> bp::double_), bp::ws);
if (result) {
std::cout << "Great! It looks like you entered:\n";
for (double x : *result) {
std::cout << x << "\n";
}
} else {
std::cout
<< "Good job! Please proceed to the recovery annex for cake.\n";
}
}
该库默认是纯头文件,并且没有 Boost 依赖项。
功能
- 用于解析各种事物的解析器。
- 组合操作,这些操作可以将复杂的解析器组合成更简单的解析器。
- 多种从解析中提取数据的方式,包括通过回调。
- 哨兵和范围友好。
- 对 Unicode 非常友好。
- 出色的错误报告,通过类似 GCC 和 Clang 生成的诊断信息。
- 用于调试解析器的跟踪支持。
- 巧妙的技巧,使编译时错误更容易处理。(这些是完全可选的。)
该库首次出现在 Boost 1.87.0 中。
主分支状态
开发分支状态