Analisador de equação (expressão) com precedência?

Desenvolvi um analisador de equação usando um algoritmo de pilha simples que manipulará operadores binários (+, -, |, &, *, /, etc), operadores unários (!) E parênteses. Usar este método, no entanto, me deixa com tudo tendo a mesma precedência - é avaliado da esquerda para a direita,...