【发布时间】:2010-10-12 16:13:31
【问题描述】:
我正在尝试使用 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)。第二组将有一个元素,因此最终输出将是笛卡尔积。
语法是递归的,因为它可以像n级一样
cross(cross({a,b},{c1}),{c2})
这意味着 a,b 与 c1 交叉。让我们说结果我们y。我们再次将它与 c2 交叉
这可以到n级 cross(cross(cross(cross...
我想要的是使用 setparseAction 初始化对象
所以我会有两节课
class object1(object):
This will be used by a,b,c,d
class object2(object):
This will hold cross elements
我需要这方面的帮助,我无法制作递归解析器。
【问题讨论】:
标签: python recursion parsing pyparsing