私は解析が初めてです(明らかに)。マークアップ言語を解析するために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はグループ化されません。