Есть код в прикрепленном файле (прикрепил в формате txt). Тема задачи - бинарные деревья синтаксического разбора. Суть - пользователь вводит арифметическое выражение в виде строки; она может содержать скобки, числа (целые и вещественные), переменные и знаки операций (+ - * /). Программа в зависимости от приоритета операций разбирает эту строку на бинарное дерево так, что числа и переменные - это листья дерева (то есть вершины без выходящий из них ветвей), а знаки операций имеют две выходящие ветви. Чем ниже уровень операции в дереве - тем ниже приоритет.
После ввода строки - вводятся значения переменных (случайными числами или с клавиатуры) и решается пример.
Код-то есть, но много непонятного в нем. Требуется объяснить на словах, как работает программа, прокомментировать код (что значат те или иные переменные, зачем нужны подпрограммы, что такое термы и т.д.). Желательно как можно более подробно. Ничего дописывать в код не надо, всего лишь разобраться и объяснить.