Хороший вопрос, и Waterbear, похоже, мало что дает, поэтому я подумал, что я бы оценил свои два евроцента ...
Думайте о вложенной структуре как о дереве - так она и записывается внутри. Операторы (и, или, + и так далее) имеют две ветви, которые являются двумя записями. У вызовов функций столько веток, сколько у них аргументов, а у некоторых, например, «сумма» имеет различное число.
Визуально каждый объект (оператор и т. Д.) Должен показывать правильное количество полей. Рекурсивный алгоритм пересекает дерево операций для отображения, и при отбрасывании тот же алгоритм может использоваться для обновления отображения.