2010-06-10 128 views
-1

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

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

任何人都可以提出一些指导方针,我该怎么做呢?

+0

完全重复(同一用户,昨天):[解析表达式范围(http://stackoverflow.com/questions/3003514/parsing-range -expressions) – 2010-06-10 13:11:56

+0

@Paul唯一的意图是在正确的标记 – 2010-06-10 13:18:06

+1

下发布它,在这种情况下,您只需要编辑原始问题上的标记 - 您不需要重新开始并重复该问题以更改标签。另外,对于第一个问题,您已经有了一个非常好的答案,您不承认(我发现您现在已经删除了这个 - 为什么?)。 – 2010-06-10 14:01:50

回答

0

我重新张贴Aftershock的回答你的问题你第一次发布它,因为它是一个很好的答案,它不值得被删除:


你必须写一个小口译员。有很多方法可以做到这一点。这是一个。这里是它的样式:http://en.wikipedia.org/wiki/Interpreter_pattern

这也可以帮助:http://ryanfarley.com/blog/archive/2004/08/19/966.aspx那是关于数据范围但问题类似。

您也可以使用操作precedense解析器:http://en.wikipedia.org/wiki/Operator-precedence_parser