boot 词汇分析器
来源:互联网 发布:手机绿坝软件 编辑:程序博客网 时间:2024/06/10 06:38
这是一个简单的json语法分析器,也可以定义自己的分析器,先学习了
#include <boost/spirit.hpp> #include <string> #include <fstream> #include <sstream> #include <iostream> struct json_grammar : public boost::spirit::grammar<json_grammar> { struct print { void operator()(const char *begin, const char *end) const { std::cout << std::string(begin, end) << std::endl; } }; template <typename Scanner> struct definition { boost::spirit::rule<Scanner> object, member, string, value, number, array; definition(const json_grammar &self) { using namespace boost::spirit; object = "{" >> member >> *("," >> member) >> "}"; member = string[print()] >> ":" >> value; string = "\"" >> *~ch_p("\"") >> "\""; value = string | number | object | array | "true" | "false" | "null"; number = real_p; array = "[" >> value >> *("," >> value) >> "]"; } const boost::spirit::rule<Scanner> &start() { return object; } }; }; int main(int argc, char *argv[]) { std::ifstream fs(argv[1]); std::ostringstream ss; ss << fs.rdbuf(); std::string data = ss.str(); json_grammar g; boost::spirit::parse_info<> pi = boost::spirit::parse(data.c_str(), g, boost::spirit::space_p); if (pi.hit) { if (pi.full) std::cout << "parsing all data successfully" << std::endl; else std::cout << "parsing data partially" << std::endl; std::cout << pi.length << " characters parsed" << std::endl; } else std::cout << "parsing failed; stopped at '" << pi.stop << "'" << std::endl; }
阅读全文
0 0
- boot 词汇分析器
- 【操作系统】shell词汇分析器(Lexical Analyzer)
- 词汇
- 词汇
- 词汇
- 词法分析器
- 词法分析器
- 查询分析器
- 分析器错误
- 词法分析器
- [PostgreSQL]分析器
- LL1分析器
- RL分析器
- 词法分析器
- 词法分析器
- 词法分析器
- 语法分析器
- 词法分析器
- 蒙特卡洛算法与电脑围棋
- springboot集成shiro
- spring-dada-elasticsearch3.0.0+elasticsearch5.5.0+ik+synonum构建实时的搜索引擎
- How Can We Benefit From 24-Port Managed PoE Switch?
- PHP 编译后的 OPCode 说明
- boot 词汇分析器
- 远程调用服务(RPC)和消息(Message Queue)对比及其适用/不适用场合
- 将本地jar包打入到本地maven仓库中进行管理
- Personnelfiles:processDebugManifest'(引入库报错)
- Activity的四大启动模式总结
- Android使用SVG矢量图打造酷炫动画效果
- Gradle下载与环境变量配置
- scikit-learn 中文文档-集成方法-监督学习|ApacheCN
- C++进阶—>Socket通信那点事