gpt4 book ai didi

c++ - 用 spirit::qi 检查双重符号

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:58:28 25 4
gpt4 key购买 nike

我需要检查文本中是否有双重符号。例如“1+1*2”应该没问题,但“1**2+3”或“--1+4*3”不应该。考虑精神计算示例的一部分。

     expression =
term[_val=_1]
>> *( ('+' >> term[_val+=_1])
| ('-' >> term[_val-=_1])
);

term =
factor[_val=_1]
>> *( ('*' >> factor[_val*=_1])
| ('/' >> factor[_val/=_1])
);

factor =
double_[_val=_1]
| '(' >> expression[_val=_1] >> ')'
| ('-' >> factor[_val=_1])
| ('+' >> factor[_val=_1]);

phrase_parse 返回 true,表达式如“1+++1”或“1**-1”。我试着像这样重复使用:

      term =
factor[_val=_1]
>> *( (repeat(0)[char_('*')] >> factor[_val*=_1])
| ('/' >> factor[_val/=_1])
);

但这并没有帮助。我想念什么?谢谢。

编辑:找到答案。应该比较 phrase_parse 之后的字符串迭代器,而不是 phrase_parse 输出。

最佳答案

找到答案。应该比较 phrase_parse 之后的字符串迭代器,而不是 phrase_parse 输出。

关于c++ - 用 spirit::qi 检查双重符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13931799/

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