26 #include "ProtoExpr.h"    36     static const double &no_numero;
    38     inline void BorraIzdo(
void)
    47     inline void BorraDcho(
void)
    56     inline void BorraHijos(
void)
    81       : data(NULL), izdo(NULL), dcho(NULL) {}
    83     explicit Rama(
const double &d);
    89     Rama *getCopy(
void)
 const    94               return new Rama(data,izdo->getCopy(),dcho->getCopy());
    96               return new Rama(data,izdo->getCopy(),NULL);
   101               return new Rama(data,NULL,dcho->getCopy());
   103               return new Rama(data,NULL,NULL);
   107     inline void PutIzdo(
Rama *i)
   110         if(i) izdo= i->getCopy();
   112     inline void PutDcho(
Rama *j)
   115         if(j) dcho= j->getCopy();
   123     inline const Operando *GetData(
void)
 const   125     inline Rama *getLeft(
void)
 const   127     inline Rama *getRight(
void)
 const   129     Clase GetClase(
void) 
const;
   130     const std::string &StrClase(
void) 
const;
   131     inline const Operando *DatoIzdo(
void)
   132       { 
return izdo->data; }
   133     inline const Operando *DatoDcho(
void)
   134       { 
return dcho->data; }
   135     inline int GetPrioridad(
void) 
const;
   137     bool EsToNum(
void) 
const;
   140     inline const double &GetValor(
void)
 const   141       { 
return ((GetClase() == operando) ? data->GetValor() : no_numero); }
   149               if(p) dcho= p->getCopy();
   155               if(p) izdo= p->getCopy();
   166     friend std::ostream &operator <<(std::ostream &stream,
const Rama &e);
   175 void Escribe(
const Rama *raiz,
const int &prior, std::ostream &stream);
 Árbol que representa una expresión matemática. 
Definition: ArbolExpr.h:41
Definition: ProtoExpr.h:35
Definition: OpUnario.h:29
Definition: Variable.h:31
Definition: ConjVariables.h:30
Operando. 
Definition: Operando.h:42
Definition: OpBinario.h:50
friend Rama * distrib(Rama *raiz)
Aplica la propiedad distributiva a través del arbol. 
Definition: Rama.cc:208
static void Asigna(const std::string &palabra, const double &d)
Assigns to the variable named 'palabra' the value being passed as parameter. 
Definition: ProtoExpr.cc:72
const Operando & Opera(void)
Ejecuta el operador de éste objeto. 
Definition: Rama.cc:145
const std::string & GetFullString(void) const
Devuelve una cadena de caracteres que representa a la expresión representando los literales con la má...
Definition: Rama.cc:277
virtual ~Rama(void)
Destructor. 
Definition: Rama.cc:104
Operador binario. 
Definition: OpBinario.h:32
Rama(void)
Constructor por defecto. 
Definition: Rama.h:80
Definition: ExprFunctor.h:28
bool Evaluable(void) const
Devuelve verdadero si la rama es evaluable. 
Definition: Rama.cc:166
Rama & operator=(const Rama &)
Operador asignación. 
Definition: Rama.cc:53
Definition: OpBinario.h:77
bool operator==(const Rama &r2) const
Comparison operator. 
Definition: Rama.cc:64