xc
Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
ArbolExpr Class Reference

Árbol que representa una expresión matemática. More...

#include <ArbolExpr.h>

Inheritance diagram for ArbolExpr:
Inheritance graph
[legend]
Collaboration diagram for ArbolExpr:
Collaboration graph
[legend]

Public Member Functions

 ArbolExpr (void)
 Constructor por defecto.
 
 ArbolExpr (const std::string &str)
 Constructor a partir de text string.
 
 ArbolExpr (const ArbolExpr &otro)
 Constructor de copia.
 
 ArbolExpr (const double &d)
 Constructor a partir de double.
 
virtual bool operator== (const ArbolExpr &) const
 Comparison operator.
 
ArbolExproperator= (const ArbolExpr &otro)
 Operador asignación.
 
ArbolExproperator+= (const ArbolExpr &a2)
 
ArbolExproperator-= (const ArbolExpr &a2)
 
ArbolExproperator*= (const ArbolExpr &a2)
 
ArbolExproperator/= (const ArbolExpr &a2)
 
ArbolExpr operator- (void)
 
ArbolExprpow (const ArbolExpr &a2)
 
const double & ToNum (void) const
 
const double & ToNum (const std::string &palabra, const double &d) const
 Devuelve el valor numérico (si puede).
 
const double & ToNum (const MapValores &) const
 
virtual bool Evaluable (void) const
 
void RecorrePreorden (const ExprFunctor &f)
 
void RecorreEnorden (const ExprFunctor &f)
 
void RecorrePostorden (const ExprFunctor &f)
 
void RecorrePreorden (const ExprFunctor &f) const
 
void RecorreEnorden (const ExprFunctor &f) const
 
void RecorrePostorden (const ExprFunctor &f) const
 
void Asigna (const std::string &palabra, const ArbolExpr &a)
 
void DesAsigna (const std::string &palabra)
 
ConjVariables Variables (void) const
 Devuelve el conjunto de variables que aparecen en la expresión.
 
bool TieneVariable (const std::string &palabra) const
 Return true if the expression depends on the variable name being passed as parameter. More...
 
bool TieneVariable (const VarExpr &var) const
 Devuelve verdadero si la expresión depende de la variable que se pasa como parámetro. More...
 
bool TieneVariable (const Variable &var) const
 Devuelve verdadero si la expresión depende de la variable que se pasa como parámetro. More...
 
int NumVariables (void) const
 Devuelve el número de variables que intervienen en la expresión.
 
std::vector< std::string > getNamesOfVariables (void) const
 Return the names of the variables.
 
std::string GetString (void) const
 Devuelve una text string con el contenido de la expresión.
 
const std::string & GetFullString (void) const
 Devuelve una text string con el contenido de la expresión representando los valores reales con toda la precisión posible. More...
 
void Print (std::ostream &os) const
 Imprime la expresión en el stream que se pasa como parámetro.
 
- Public Member Functions inherited from ExprBase
 ExprBase (const bool &ET)
 Constructor por defecto.
 
virtual bool operator== (const ExprBase &) const
 Comparison operator.
 
bool operator!= (const ExprBase &other) const
 
bool ErrorTraduccion (void) const
 Devuelve verdadero si ha habido errores en la traducción.
 
- Public Member Functions inherited from ProtoExpresion
 ProtoExpresion (void)
 Constructor.
 

Static Public Member Functions

static void Asigna (const std::string &palabra, const double &d)
 
- Static Public Member Functions inherited from ProtoExpresion
static LexAlgebraCreaLexico (void)
 Devuelve una referencia al léxico.
 
static LexicoLex (void)
 Devuelve una referencia al léxico.
 
static LexAlgebraLexA (void)
 Devuelve una referencia al léxico.
 
static bool TieneLexico (void)
 
static NamedOperandNuevaVar (const Variable &v)
 Creates the variable being passed as parameter.
 
static NamedOperandNuevaVar (const std::string &palabra)
 Creates the variable which name is being passed as parameter. More...
 
static VariableCalcDirVar (const std::string &nmb)
 Return a pointer to the variable which name is being passed as parameter. More...
 
static void Asigna (const std::string &palabra, const double &d)
 Assigns to the variable named 'palabra' the value being passed as parameter. More...
 
static void DesAsigna (const std::string &palabra)
 Removes the assignment to the variable which name is being passed as parameter. More...
 

Protected Member Functions

RamaTraduce (const ExprPostfija &e)
 
RamaTraduce (const std::string &cadena_entrada)
 
void InicFromStr (const std::string &str)
 
void Opera (void)
 Opera todo el árbol.
 
void OperaToNum (void)
 Procesa los operadores to_num que haya en la expresión.
 
const double & GetValor (void) const
 
ArbolExprAplicaOperador (const Operador *op, const ArbolExpr &a2)
 
void Neg (void)
 Cambia de signo la expresión contenida en el árbol.
 
void Abs (void)
 Aplica el operador "valor absoluto" a la expresión contenida en el árbol.
 
void Sqrt (void)
 Aplica el operador "raíz cuadrada" a la expresión contenida en el árbol.
 
void Dif (const std::string &var)
 Diferencia la expresión respecto a la variable cuyo identificador se pasa como parámetro.
 
void Simplifica (void)
 
void Distrib (void)
 

Friends

class Lexico
 Léxico para interpretar la expresión.
 
std::ostream & operator<< (std::ostream &stream, const ArbolExpr &a)
 Inserta en stream de salida.
 
ArbolExpr abs (const ArbolExpr &)
 Devuelve el valor absoluto del argumento.
 
ArbolExpr sqrt (const ArbolExpr &)
 Devuelve la raíz cuadrada del argumento.
 

Additional Inherited Members

- Static Protected Member Functions inherited from ProtoExpresion
static SegnalCalcularDireccion (const std::string &nmb)
 Return a pointer to the signal which name is being passed as parameter. More...
 
- Protected Attributes inherited from ExprBase
bool err_traduc
 Verdadero si se produce un error en la traducción.
 
- Static Protected Attributes inherited from ProtoExpresion
static LexAlgebraptr_lex = NULL
 

Detailed Description

Árbol que representa una expresión matemática.

Member Function Documentation

◆ GetFullString()

const std::string & ArbolExpr::GetFullString ( void  ) const

Devuelve una text string con el contenido de la expresión representando los valores reales con toda la precisión posible.

◆ TieneVariable() [1/3]

bool ArbolExpr::TieneVariable ( const std::string &  palabra) const

Return true if the expression depends on the variable name being passed as parameter.

◆ TieneVariable() [2/3]

bool ArbolExpr::TieneVariable ( const VarExpr var) const

Devuelve verdadero si la expresión depende de la variable que se pasa como parámetro.

◆ TieneVariable() [3/3]

bool ArbolExpr::TieneVariable ( const Variable var) const

Devuelve verdadero si la expresión depende de la variable que se pasa como parámetro.


The documentation for this class was generated from the following files: