在X3中的运行时将解析器传递给规则

时间:2017-02-06 20:44:56

标签: boost-spirit boost-spirit-x3

<table> <tr> <td>ID</td> <td>Ref No</td> <td>Name</td> <td>Result</td> </tr> <tr> <td>1</td> <td>1121</td> <td>Joseph</td> <td>CLEAR</td> </tr> <tr> <td>4</td> <td>1122</td> <td>Mike</td> <td>HIT</td> </tr> <tr> <td>5</td> <td>1123</td> <td>Jim</td> <td>HIT</td> </tr> <tr> <td>6</td> <td>1124</td> <td>James</td> <td>CLEAR</td> </tr> </table> 中,可以将解析器作为继承属性传递给规则,然后直接使用它:

spirit::qi

X3中是否有解决方法?

我可以&#34;注射&#34;使用... >> lazy(_r1) >> ... 解析器到所需的规则上下文,我可以在稍后的某个语义操作中检索它 - 但我没有意识到如何调用&#34;那么。

1 个答案:

答案 0 :(得分:1)

我不认为它在那里。

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

请注意,在X3中制作自定义解析器类型非常简单。 Baptiste Wicht Agustín“K-ballo”Bergé有一些例子,我想我也应该在这里现场。让我找一些链接