1

在精神 X3 中,我可以构建一个这样的解析器:

const auto p = ("Number:" >> x3::_int)
             | ("String:" >> +x3::alpha);

如果我知道字符串之后Number是一个 int 并且String一直在一个字符串之后,我可以使用>说 after Numberonly 是一个数字,依此类推。

const auto p = ("Number:" > x3::_int)
             | ("String:" > +x3::alpha);

对我来说,区别在于如果解析器无法解析输入,则会抛出异常。

现在我的问题是,我应该尽可能使用>操作符而不是>>操作符吗?生成的解析器是否>比仅使用>>运算符的解析器更快?

4

1 回答 1

1

您应该始终只对事物进行概要分析。

不管:

当我使用 expect 运算符时,我会使用 Spirit X3 获得更快的解析器吗

仅在它防止回溯替代方案的范围内,但如果您需要,它无论如何都不会做同样的事情。

于 2016-08-13T22:56:52.110 回答