布尔表达式评估

时间:2010-06-10 13:08:32

标签: expression

我有一个字符串(R(46 - 9900))AND(NOT(R(48 - 9900)))其中R表示范围。如果你评估表达式,它会得到R(46-47),考虑逻辑运算符(AND,NOT)。

我有一个要求,我需要解析这样一个字符串并将其评估为正确的结果。我必须使用C ++作为编程工具来实现这一结果。

有人可以建议一些指导方针,我该如何处理?

1 个答案:

答案 0 :(得分:0)

我在你第一次发布问题时重新发布了Aftershock的问题答案,因为这是一个很好的答案而且不值得删除:


你必须写一个小翻译。有很多方法可以做到这一点。这是一个。这是模式:http://en.wikipedia.org/wiki/Interpreter_pattern

这也有帮助:http://ryanfarley.com/blog/archive/2004/08/19/966.aspx这是关于数据范围的交叉,但问题是类似的。

您也可以使用运算符优先解析器:http://en.wikipedia.org/wiki/Operator-precedence_parser