gpt4 book ai didi

c++ - 使用 Boost Qi 解析为结构的随机顺序

转载 作者:太空宇宙 更新时间:2023-11-04 13:37:40 24 4
gpt4 key购买 nike

Boost 提供了一个简洁的示例,说明如何非常轻松地将数据解析为已转换为 Boost Fusion 元组的结构 here但我只是想知道如何调整代码以允许解析无序数据 - 即引用链接中的员工示例,我们希望能够正确解析 employee { "surname", "firstname ", 年龄, 工资 }.这个例子有点不太具体,因为 age 的签名可能与 salary 无法区分,同样对于 surnamefirstname

但是假设我们调整我们的解析器来具体解析形式为 employee { surname = "Smith", firstname = "John", age = 34, salary = 60000 } 的输入并希望能够以随机顺序输入四个属性并允许正确解析。我该怎么做?

最佳答案

以下内容与您的任务相关:

  • Permutation Parser (a ^ b)

    The permutation operator, a ^ b, matches one or more operands (a, b, ... etc.) in any order

    但是,如果您的元素不是可选的,则需要添加验证

  • Keyword List Operatorkwd directive允许更细粒度的控制:

    Live On Coliru

    constraint_person_rule =
    kwd("name",1) ['=' > parse_string ]
    / kwd("age" ,1) ['=' > int_]
    / kwd("size" ,1) ['=' > double_ > 'm']
    / kwd("favorite color",0,inf) [ '=' > parse_string ]
    ;

关于c++ - 使用 Boost Qi 解析为结构的随机顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29002260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com