Paw*_*wel 2 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")
Run Code Online (Sandbox Code Playgroud)
最后一行应该给我['a','b','aa','b','aaa','b']
没有错误,但它挂起(无限递归可能?).有人能指出我正确的方向吗?
我可以这样做
from lepl import *
a = Literal('a')
b = Literal('b')
c = (a | b)[0:]
print c.parse("abaabaaab")
Run Code Online (Sandbox Code Playgroud)
但是a不会被分组.
小智 7
我很确定,在你的第一个例子中,你想要的
a = Literal('a')[1:]
Run Code Online (Sandbox Code Playgroud)
[0:]在你的语法中有两次重复,解析器确实会遇到无限的回溯.