Sto per scrivere un valutatore di espressioni che esegue solo addizioni e sottrazioni. Ho un semplice algoritmo per farlo; ma, ho alcuni problemi di implementazione.Analizzatore di espressioni ricorsive utilizzando Java
ho considerato un'espressione come (si tratta di una stringa)
"(" <expression1> <operator> <expression2> ")"
Ecco il mio algoritmo
String evaluate(String expression)
if expression is digit
return expression
else if expression is "(" <expression1> <operator> <expression2> ")"
cut the brackets out of it
expression1 = evaluate(<expression1>)
operator = <operator>
expression2 = evaluate(<expression2>)
if operator is +
expression1 + expression2
else if operator is -
expression1 - expression2
Il mio problema è l'analisi <expression1>
, <operator>
e <expression2>
dall'espressione. Come lo posso fare?
Nota: non sto chiedendo un codice. Tutto ciò di cui ho bisogno è un'idea per farlo.
Grazie,
-Ali
Se siete interessati a un esempio di lavoro di un piccolo Java matematica valutatore scritto proprio in questo modo, io ho uno sul mio sito web: http://www.softwaremonkey.org/Code/MathEval –