public double Avaliar() { double valor = 0.0; if (this.Operador == Operador.Soma) { valor = _esquerda.Avaliar() + _direita.Avaliar(); } if (this.Operador == Operador.Subtracao) { valor = _esquerda.Avaliar() - _direita.Avaliar(); } if (this.Operador == Operador.Multiplicacao) { return(_esquerda.Avaliar() * _direita.Avaliar()); } if (this.Operador == Operador.Divisao) { valor = _esquerda.Avaliar() / _direita.Avaliar(); } return(valor); }
public void TesteParserParseia() { string expressao = "2 + 3"; var p = new Parser(); IExpressao exp = p.Parse(expressao); Assert.IsNotNull(exp); Assert.AreEqual(5.0, exp.Avaliar()); }