参考以下公认的解决方案:SO:expression_evaluator
任何人都可以提供一个与否定一起使用的版本吗?像
((!(0 or !1) and !((0 or 1 or 1) and !1))
也需要工作.
我得到它的工作,所以否定0或1是好的,但我不能让它与整个群体的否定一起工作(!在括号开头)
我尝试在*expr =='中返回eval之后否定tmp('阻止..如果!在调用它之前已经看过了,但是这不起作用.
该答案中的代码有点特别.解析是一个众所周知的领域,不需要发明.其中一个答案建议考虑递归下降解析.我是第二个推荐.