给定一个像 'x < 10 and x >= 11 or x > 20' 这样的表达式,并且假设已经有一个可用的表达式解析树(例如 [or [ [and [< [var:x] [10] ] [>= [var:x] [11] ] ] [> [var:x] [20] ] ]),我怎样才能找到导致该表达式计算为真的 x 的范围/集合?
对语法的一些限制是:
- 表达式中只有一个变量(示例中为 x),因此没有像 x + 2 < y 这样的表达式
- 只有比较运算符,但可能是空的?[字符串表达式] 在表达式中
- 没有算术表达式或函数调用 - 所以像 x + 2 < 3 或 x < someFunc() 这样的事情是不可能的