парсинг, конечный автомат, приоритет
Пишу парсинг мат. выражений в виде конечного автомата.
У меня появился вопрос - как правильно реализовывать приоритет операций. К примеру a=b+c*d+e. Я по очереди беру токены и строю дерево (левое) . То есть в начале создаю узел "=", заношу влево А, потом вправо Б, потом создаю новый узел (+), пихаю влево узел "=" (что уже нелогично) , вправо С и так далее. Получается левое дерево.
Получается, что приоритеты везде одинаковые. Если выставить приоритет = выше всех, потом умножение, а потом сложение, то получится все вроде правильно. Вот как в конечном автомате это правильно сделать?