Вопрос решился.
Как я и предполагал, надо было создать стек отложенных бинарных операций. При добавлении новой бинарной операции в стек, нужно сравнить ее приоритет с приоритетом предыдущей операции, и если новая операция имеет меньший приоритет, то выполнить предыдущую. Со скобками почти то же самое, только там используется флаг.
Если будет возможность, выложу решение на GitHub.
Всем спасибо за помощь!