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 依赖项。
功能
- 解析各种内容的解析器。
- 组合操作,用简单的解析器构建复杂的解析器。
- 多种从解析中获取数据的方式,包括通过回调。
- 对 Sentinel 和 Range 友好。
- 非常 Unicode 友好。
- 出色的错误报告,通过类似 GCC 和 Clang 生成的诊断信息。
- 用于调试解析器的跟踪支持。
- 巧妙的技巧,使编译时错误更容易处理。(这些是完全可选的。)
该库首次出现在 Boost 1.87.0 中。
Master 状态
Develop 状态