예제 #1
0
        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);
        }
예제 #2
0
        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());
        }