Я новичок в разборе (очевидно).Я использую библиотеку 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 не будет сгруппирован.