解析程序配置文件

时间:2018-06-22 00:14:18

标签: c++ parsing

我需要为程序配置文件编写阅读器类,而我正在尝试确定解决此问题的最佳方法。

我对 boost :: spirit 有一定的经验(实际上,足以知道我在编写语法方面很糟糕),并且对正则表达式也有很多经验

除此之外,我想不起。所以我的选择似乎是:

  1. boost :: spirit
  2. std或boost正则表达式
  3. ol'时尚字符串解析

我正在寻找有关如何进行的建议或建议-甚至在任何人都愿意的情况下,甚至是伪代码。

我意识到这是一个基于观点的问题,但是我真的很努力地与作家们格格不入。我担心我会走一条路,浪费很多时间才意识到这是一个糟糕的选择。

配置文件格式已经定义,看起来像这样:

Group1 {
    Scalar1 = 500
    Scalar2 = 45.5
    Scalar3 = My Value
    List1 {
        LS1 = 123
        LS2 = hello world
    }
    List2 {
        LS1 = 456
        LS2 = goodbye world
    }
    Array1 [
        300
        200
        25
    ]
    Array2 [
        true
        false
        true
        false
    ]
};
  • 该配置将始终至少包含一个Group
  • Group将包含 0..n ScalarList和/或Array条目
  • 一个scalar是:label = value
  • ListScalars的标签容器
  • Array是带有标签的值的容器

显示的标签(例如Scalar1Scalar2等)只是示例。它们可以称为任何名称:maxrate = 500avg_val = 45.5一样有效。

1 个答案:

答案 0 :(得分:1)

将文件复制到tmp,将var employees: ArrayList<String>? = null employees?.add("employee") 的每个实例替换为=,然后将:读为json。