Это просто игрушечная грамматика для проверки возврата:
from pyparsing import *
a = Literal("a")
b = Literal("b")
c = Literal("c")
abb = a + b + b
abc = a + b + c
aba = a + b + a
grammar = MatchFirst( [ abb.setDebug(), abc.setDebug(), aba.setDebug() ] )
grammar.parseString( "aba" )
При отключенном пакете , возвращаемое дерево разбора
['a', 'b', 'a']
При включенном пакрате я получаю
['a', 'b', 'b', 'a']
Почему это происходит в последнем случае? Спасибо