Página principal   Lista de namespaces   Hierarquia de classes   Lista de componentes   Lista de ficheiros   Componentes   Declarações  

formula_impl.H

Ir para a documentação deste ficheiro.
00001 #include <sstream>
00002 
00003 inline 
00004 Calculo::Formula::Contexto::Contexto(MapaDeConstantes const& constantes,
00005                                      MapaDeFuncoes const& funcoes)
00006     : constantes(constantes), funcoes(funcoes)
00007 {
00008 }
00009 
00010 inline Calculo::Formula::Formula(std::string const& formula)
00011 {
00012     std::istringstream entrada(formula);
00013 
00014     do {
00015         simbolos.push_back(Simbolo(entrada));
00016     } while(simbolos.back() != Simbolo::fim);
00017 
00018     assert(cumpreInvariante());
00019 }
00020 
00021 inline double Calculo::Formula::valorDeFormula(Contexto& contexto) const
00022 {
00023     Iterador i = simbolos.begin();
00024 
00025     double valor = valorDeExpressao(contexto, i);
00026     
00027     if(i != simbolos.end() and *i != Simbolo::fim)
00028         throw ErroDeAnalise(std::string("fórmula contém símbolo expúrio ") + 
00029                             i->descricao());
00030 
00031     return valor;
00032 }
00033 
00034 inline double 
00035 Calculo::Formula::valorDeExpressao(Contexto& contexto, Iterador& i) const
00036 {
00037     double valor = valorDeExpressaoCondicional(contexto, i);
00038     
00039     return valor;
00040 }
00041 
00042 inline bool Calculo::Formula::cumpreInvariante() const
00043 {
00044     return true;
00045 }

Gerado em Mon Apr 15 15:57:08 2002 para Calculo por doxygen1.2.6 escrito por Dimitri van Heesch, © 1997-2001