gpt4 book ai didi

C++ 中缀到逻辑条件的前缀转换

转载 作者:可可西里 更新时间:2023-11-01 16:20:10 24 4
gpt4 key购买 nike

我想用 C++ 计算一个表达式。为了对其进行评估,我希望将表达式转换为前缀格式。

举个例子

 wstring expression = "Feature1 And Feature2";

以下是可能的方法。

 expression = "Feature1 And (Feature2 Or Feature3)";

expression = "Not Feature1 Or Feature3";

这里的And, Or, Not是保留字和括号("(", )) 用于作用域

Not 具有更高的优先级

And 的下一个优先级设置为 Not

Or 设置为 And 的下一个优先级

WHITE SPACE 用于分隔符。表达式没有其他元素,例如TABNEWLINE

不需要算术表达式。我可以进行评估,但有人可以帮我将字符串转换为前缀表示法吗?

最佳答案

您需要预先构建语法。那么为什么要手动进行所有解析。而是使用像 Boost-Spirit 这样的解析器构建器库.或 lex/yacc 或 flex/bison。

然后使用 AST由解析器构建器生成,以您认为合适的任何方式输出数据。例如中缀到前缀或后缀等。

关于C++ 中缀到逻辑条件的前缀转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2558162/

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