Написать программу, которая по заданной формуле логического выражения строит дерево и производит вычисления с помощью построенного дерева. Формула задана в традиционной инфиксной записи, в ней могут быть скобки, максимальная степень вложенности которых ограничивается числом 10. Аргументами могут быть логические константы (true, false) и переменные, задаваемые однобуквенными именами (не более трех различных переменных в одной формуле). Допустимые операции: not, and, or, xor. С помощью построенного дерева формулы упростить формулу, раскрыв все возможные скобки и приведя все возможные подобные слагаемые. Для начального и преобразованного дерева реализовать возможность вычисления значения формулы при заданных значениях аргументов и распечатки таблицы истинности.