00001 //=========================================================================== 00002 //= regexp.h Diciembre de 1999 = 00003 //=-------------------------------------------------------------------------= 00004 //= Lector de expresiones regulares AQUYNZA = 00005 //=-------------------------------------------------------------------------= 00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO = 00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN = 00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES, = 00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO, = 00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO, = 00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA = 00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES = 00013 //= ("ACTIVIDADES DE ALGO RIESGO"). = 00014 //=-------------------------------------------------------------------------= 00015 //= Autor original: Oscar J. Chavarro G. A.K.A. JEDILINK. Copyright (c), = 00016 //= 1997 - 2003, oscarchavarro@hotmail.com = 00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia = 00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la = 00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. = 00020 //=========================================================================== 00021 00022 #ifndef __REGEXPLOAD__ 00023 #define __REGEXPLOAD__ 00024 00025 #include "jed_defs.h" 00026 #include "entidad.h" 00027 00028 #include "lista.h" 00029 00030 enum ENUM_REGEXP_OPERATORS { 00031 OP_INVALIDO = 0, 00032 OP_SUMA, 00033 OP_RESTA, 00034 OP_NEGACION, 00035 OP_MULTIPLICACION, 00036 OP_DIVISION, 00037 OP_EXPONENTE, 00038 RA_CONSTANTE, 00039 RA_VARIABLE, 00040 FN_SIN, 00041 FN_COS, 00042 FN_LOG 00043 }; 00044 00045 class EXPRESION_REGULAR : public ENTIDAD { 00046 private: 00047 BOOLEAN leer(LISTA<char *> *Tokens); 00048 int tipo; 00049 EXPRESION_REGULAR *Izq; 00050 EXPRESION_REGULAR *Der; 00051 char *nombre_variable; 00052 double valor; 00053 double ultimo_t; 00054 int clasificar_funcion(char *cad); 00055 public: 00056 EXPRESION_REGULAR(); 00057 virtual ~EXPRESION_REGULAR(); 00058 00059 void elim(void); 00060 BOOLEAN init(char *fuente); 00061 void imprimir(void); 00062 double evaluar(double t); 00063 BOOLEAN 00064 consultar_variable(const char *nombre_variable, int &tipo, void **ref); 00065 }; 00066 00067 #endif // __REGEXPLOAD__ 00068 00069 //=========================================================================== 00070 //= EOF = 00071 //=========================================================================== 00072