【问题标题】:library to abstract text parsing in C++在 C++ 中抽象文本解析的库
【发布时间】:2012-08-12 18:35:32
【问题描述】:

我将解析大量文件,其中 XML 文件具有精确的层次结构,其他文件具有精确的语法。我想在 “令牌级别” 抽象这些文件以简化我的代码和逻辑。我还需要 UTF-8 支持。

是否有可以在 C++ 中执行此操作的库,或者可能仅由多个标头组成的库?

编辑:

假设我的文件是这样的

COLOR=red Language=en
COLOR=blue Language=se
COLOR=green Language=fr

令牌级别的意思是我可以通过这种方式解析后访问这些值:

Object.getValue(color, 1)

这应该返回red

【问题讨论】:

  • 你说的token level是什么意思?
  • @DougRamsey 我在第一篇文章中添加了更多信息。
  • 这看起来很定制。除非这些文件是一些已知的标准格式,通常会为应用程序解析,否则我无法想象有一个现有的库已经这样做了。我认为您将不得不自己编写解析代码。
  • @DougRamsey 什么是更标准的方法?
  • 创建一个类来表示每一行的数据。在文件解析期间实例化这些类,并将对象保存在某个集合中。

标签: c++ parsing token


【解决方案1】:

嗯,有boost::spirit,我想这可能就是您要找的东西。您可以使用它来创建解析输入的规则。我个人从未使用过它,但听说过很好的 cmets。希望对您有所帮助。

【讨论】:

  • Boost.Spirit 无疑是最好的解析器生成器框架。没有比赛。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-20
  • 2012-11-09
  • 1970-01-01
  • 1970-01-01
  • 2015-01-07
相关资源
最近更新 更多