我正在尝试打印形式((a AND (b OR c OR d)) AND e AND (f OR g))的复杂逻辑表达式的所有可能性。例如,输出应该是
a, b, e, f
a, c, e, f
a, d, e, f
a, b, e, g
a, c, e, g
a, d, e, g
等
我正在使用解析器(python的PLY),它使用LARL
算法,但我不知道这是否是解决此类问题的正确方法。
我找不到以正确方式打印所有可能性的方法,所以我在想也许 PLY 它不是完成此任务的正确工具。
您是否建议我编写自己的解析器来解决此类问题?
我建议您根据应用程序的要求处理生成的解析树。 解析器只是一个前端,它根据您为其提供的操作规则返回语法组织;它不会神奇地完成您的申请。
您仍然需要编码:您需要遍历生成的数据结构(在您的控制下),并为已解析的表达式提供所有子可能性(AND 节点)或任何正数量的可能性(OR 节点)。