我正在尝试使用 python pyparsing 进行解析。我在制作递归解析器时遇到了困难。
让我解释一下问题
我想制作元素的笛卡尔积。语法是
cross({elements },{element})
我以更具体的方式
cross({a},{c1}) or cross({a,b},{c1}) or cross({a,b,c,d},{c1}) or
所以一般形式是第一组将有n个元素(a,b,c,d)。第二组将有一个元素,因此最终输出将是笛卡尔积。
语法是递归的,因为它可以像
cross(cross({a,b},{c1}),{c2})
这意味着将 a、b 与 c1 交叉。让我们说结果我们y。我们再次将它与 c2 交叉
这可以直到 n 级 cross(cross(cross(cross......
我想要的是使用 setparseAction 初始化对象
所以我会有2节课
class object1(object):
This will be used by a,b,c,d
class object2(object):
This will hold cross elements
我需要帮助,我无法制作递归解析器。