gpt4 book ai didi

c++ - Boost.Spirit 重叠 Action /重用终端 token

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:57:21 26 4
gpt4 key购买 nike

使用 Boost.Spirit,是否可以将终端 token 传递给多个操作?如果可以,语法是什么?

例如,假设我有两条规则:使用“A B”并具有关联操作“void f(, )”的规则 1 以及使用“B C”并具有关联操作“void g(<属性类型>)”的规则 2 B 的类型>, )”。

给定输入流“A1 B1 C1”,我希望调用 f(A1,B1) 和 g(B1,C1)。

编辑:更多研究建议使用 And-Predicate可能允许这样做。

最佳答案

使用局部变量:

qi::rule<Iterator, qi::locals<B> > r = 
(a >> b)[lf(_1, _2), _a = _2] >> c[lg(_a, _1)];

我在这里假设 lf() 和 lg() 是惰性函数(即底层 f() 和 g() 的包装器)。参见 here有关本地人的更多信息。缺点是你复制了 b 的属性。

关于c++ - Boost.Spirit 重叠 Action /重用终端 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7894527/

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