【问题标题】:Passing a parser to a rule at run-time in X3在 X3 运行时将解析器传递给规则
【发布时间】:2017-02-06 20:44:55
【问题描述】:

spirit::qi 中,可以将解析器作为继承属性传递给规则,然后直接使用它:

... >> lazy(_r1) >> ...

在 X3 中是否有任何解决方法?

我可以使用 with<state_tag>(std::ref(my_parser))[destination_rule] 将解析器“注入”到所需的规则上下文中,稍后我可以在一些语义操作中检索它 - 但我不知道如何“调用”它。

【问题讨论】:

    标签: boost-spirit boost-spirit-x3


    【解决方案1】:

    我不认为它在那里。

    我必须承认我只是用一些返回解析器的 lambdas 来破解大多数东西,但是如果您确实需要制作一些响应输入流的东西,相应地改变状态,您可能想要编写一个自定义的 X3 解析器类型。

    请注意,在 X3 中制作自定义解析器类型非常简单。 Baptiste WichtAgustín "K-ballo" Bergé 有一些例子,我想我也应该把它们放在现场。让我找到一些链接

    【讨论】:

    • 确实,记错了作者。又找到了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    相关资源
    最近更新 更多