Я пытаюсь pyparsing python для разбора. Я застрял во время создания рекурсивного парсера.
Позвольте мне объяснить проблему
Я хочу сделать декартово произведение элементов. Синтаксис
cross({elements },{element})
Я поставил более конкретным способом
cross({a},{c1}) or cross({a,b},{c1}) or cross({a,b,c,d},{c1}) or
Таким образом, общая форма первой группы будет иметь n элементов (a, b, c, d). Вторая группа будет иметь один элемент, поэтому конечным результатом будет декартово произведение.
Синтаксис должен быть рекурсивным, потому что он может перейти на n уровень, такой как
cross(cross({a,b},{c1}),{c2})
Это означает пересечение a, b с c1. Скажем, результат нам у. Мы снова скрестим его с c2
Это может быть до уровня n крест (крест (крест (крест ......
)
Я хочу, чтобы объект был инициализирован с помощью setparseAction
Так что у меня будет 2 класса
class object1(object):
This will be used by a,b,c,d
class object2(object):
This will hold cross elements
Мне нужна помощь в этом, я не могу сделать рекурсивный парсер.