我是解析新手(显然)。我正在使用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不会被分组。