开始编写逻辑表达式求值程序

时间:2012-11-16 01:31:23

标签: parsing logical-operators expression-evaluation

我想开发一个逻辑表达式求值程序来计算某个逻辑表达式对特定表达式的适用性。例如,

表达式可以是

形式

(A AND B) NOT C

然后应该使用另一个表达式

来评估此表达式

(B AND C) OR D

上述情况下的评估结果为FALSE,因为第二个表达式未完全填充第一个表达式。

表达式也可以更复杂,就像它可以具有数值范围R(1-100),这意味着表达式的适用性在范围内是有效的,如正则表达式中的[A-Za-z0-9]。

因此表达式可能很复杂,如

(A AND B) OR C AND R(1-100) NOT R(80-100)

然后必须通过类似

的表达式进行评估

(C OR D) AND B NOT R(1-7) AND R(25-100)

表达式何时满足另一个表达式有明确的规则。因此,如果必须编写表达式求值程序,那么最好的方法是什么。既然,我之前没有做过什么,我想有一个良好的开端。任何相关的指针或类似的实现都可能是巨大的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用堆栈轻松地评估布尔表达式。

基本上当您看到“值”时,您将它们推到堆栈上,就像您看到应用它们的运算符一样。谷歌“布尔表达式堆栈”将为你提供大量的点击。