解析重复的字符

时间:2011-04-10 19:30:22

标签: python parsing lepl

我是解析的新手(显然)。我正在使用LEPL库来解析一些标记语言。

我的代码有问题(为了清楚起见,我省略了细节)。

from lepl import *

a = Literal('a')[0:,...] # 0 or more, join the result
b = Literal('b')

c = (a | b)[0:]

print c.parse("abaabaaab")

最后一行应该给我['a','b','aa','b','aaa','b']

没有错误但它会挂起(可能是无限递归?)。有人能指出我正确的方向吗?

修改

我可以这样做

from lepl import *

a = Literal('a')
b = Literal('b')

c = (a | b)[0:]

print c.parse("abaabaaab")

a 不会被分组。

1 个答案:

答案 0 :(得分:7)

我很确定,在你的第一个例子中,你想要

a = Literal('a')[1:]

在你的语法中有两个[0:]重复,解析器确实会遇到无限回溯。