Я использую celparser.py из библиотеки cel-python для анализа выражений CEL и генерации АСТ. После анализа мне нужно пройти по AST и построить стек условий с самым внутренним условием вверху.
Например, учитывая это выражение CEL:
Код: Выделить всё
(a.name == 'Jon' && (c.role == 'lead' || c.region == 'US')) ? b.salary : c.bonus
Код: Выделить всё
c.role == 'lead'
c.region == 'US'
c.role == 'lead' || c.region == 'US'
a.name == 'Jon' && (c.role == 'lead' || c.region == 'US')
Подробнее здесь: https://stackoverflow.com/questions/789 ... conditions