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