【问题标题】:Parsing repeated characters解析重复字符
【发布时间】:2011-04-10 19:30:21
【问题描述】:

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

【问题讨论】:

    标签: python parsing lepl


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-07-03
      • 2011-12-29
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 2012-03-23
      相关资源
      最近更新 更多