Calculadora de expressoes matematicas

Pesssoal,

Eu tenho que desenvolver uma calculadora que aceite expressoes matematicas. A principio estou usando ideias de compiladores para tentar desenvolver: fazendo o analise lexica depois a sintatica (aqui ja nao sei como implementaria).
A ideia que eu tinha era analisar caracter por caracter ver se pertence a gramatica e gerar o token para o sintatico.

exemplos de expressao : 10+sin((30)*cos(30)) - com precedencia de operador e etc. E até variavel x, y.

Depois procurando alguns exemplos, descobri ate algumas libs prontas, mas o codigo nao estava aberto. Outros programas tem o codigo, mas esta muito complicado de entender o que esta fazendo.

O que realmente gostaria de saber é qual o passo-a-passo para desenvolver esta aplicação. Se a ideia inicial está certa, ou seja, fazer a analise lexica, gerar token , sintatico etc … ou existem outros meios para desenvolver esta aplicação que sejam menos complexos.

obrigado

cleomar