Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

compilador Class Reference

#include <compilador.h>

Collaboration diagram for compilador:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 compilador ()
 ~compilador ()
lcomandoscompilar_sentencia (char *query)
lcomandoscompilar (char source[1024], int longitud, int line)
lcomandoscompilar_archivo (char *nombre)
void inicializacion_lexica_sentencia (char *sentencia)

Public Attributes

lcomandos listacomand

Private Member Functions

void inicializacion_lexica (char *)
void inicializacion_lexica (char source[1024], int longitud, int line)
void finalizacion_lexica (void)
void obtener_pieza (void)
void traer_caracter (void)
void leer_palabra (void)
void leer_numero (void)
void leer_etiqueta (void)
void leer_literal (char)
char leer_fuente (void)
int es_alfanumerico (char)
int es_alfabetico (char)
int es_numerico (char)
void abrirtabla (char *nombre, database *base)
int an_PROGRAMA (void)
int an_SENTENCIA (void)
int an_SELECT (void)
int an_DELETE (void)
int an_INSERT (void)
int an_UPDATE (void)
int an_CREATETABLE (void)
int an_ALTERTABLE (void)
int an_DROPTABLE (void)
int an_OPENTABLE (void)
int an_PACKTABLE (void)
int an_EXPRESION (tabla *taux, listaselect *lwhere)
int analiza_expresion (tabla *taux, int pieza1, int pieza2, char *nombre1, char *nombre2)
int an_COMPUTO (tabla *taux, listaselect *lwhere)
int an_VALOR (tabla *taux, listaselect *lwhere)
int an_TERMINO (tabla *taux, listaselect *lwhere)
int an_FACTOR (tabla *taux, listaselect *lwhere)
void error (int, int pieza1=0, int pieza2=0, char *nombre1=NULL, char *nombre2=NULL)

Private Attributes

long linea
int pieza_actual
char nombre [long_linea]
char * fuente
long long_fuente
char * indice
char * archivo
database base

Detailed Description

Definition at line 16 of file compilador.h.


Constructor & Destructor Documentation

compilador::compilador  ) 
 

Definition at line 12 of file compilador.cpp.

References archivo.

compilador::~compilador  ) 
 

Definition at line 17 of file compilador.cpp.

References archivo, and fuente.


Member Function Documentation

void compilador::abrirtabla char *  nombre,
database base
[private]
 

Definition at line 1580 of file compilador.cpp.

References tabla::agregar(), database::agregar(), objeto::clave, objeto::decimal, metadato::decimales, metadato::enteros, error(), metadato::esclave, objeto::longitud, metadato::nombre, tabla::nombre, metadato::tipo, and objeto::tipo.

Referenced by an_OPENTABLE().

Here is the call graph for this function:

int compilador::an_ALTERTABLE void   )  [private]
 

Definition at line 581 of file compilador.cpp.

References lcomandos::agregar(), tabla::agregar(), base, tabla::buscar(), database::buscar(), c_crear, objeto::decimal, error(), linea, listacomand, objeto::longitud, nombre, obtener_pieza(), p_abrir_corchete, p_abrir_parentesis, p_add, p_cerrar_corchete, p_cerrar_parentesis, p_char, p_coma, p_date, p_entero, p_float, p_identificador, p_int, p_logical, p_modify, p_puntoycoma, pieza_actual, and objeto::tipo.

Referenced by an_SENTENCIA().

Here is the call graph for this function:

int compilador::an_COMPUTO tabla taux,
listaselect lwhere
[private]
 

Definition at line 1262 of file compilador.cpp.

References listaselect::agregar(), an_VALOR(), analiza_expresion(), listaselect::find(), nombre, obtener_pieza(), p_distinto, p_igual, p_mayor, p_mayor_igual, p_menor, p_menor_igual, pieza_actual, and nodoselect::valor.

Referenced by an_EXPRESION().

Here is the call graph for this function:

int compilador::an_CREATETABLE void   )  [private]
 

Definition at line 481 of file compilador.cpp.

References lcomandos::agregar(), tabla::agregar(), database::agregar(), base, c_crear, objeto::clave, objeto::decimal, error(), linea, listacomand, objeto::longitud, nombre, obtener_pieza(), p_abrir_corchete, p_abrir_parentesis, p_cerrar_corchete, p_cerrar_parentesis, p_char, p_coma, p_date, p_entero, p_float, p_identificador, p_int, p_key, p_logical, p_method, p_puntoycoma, pieza_actual, and objeto::tipo.

Referenced by an_SENTENCIA().

Here is the call graph for this function:

int compilador::an_DELETE void   )  [private]
 

Definition at line 933 of file compilador.cpp.

References lcomandos::agregar(), tabla::agregar(), an_EXPRESION(), base, database::buscar(), c_eliminar, c_seleccionar, tabla::campos, error(), linea, listacomand, nombre, obtener_pieza(), p_coma, p_from, p_identificador, p_puntoycoma, p_where, and pieza_actual.

Referenced by an_SENTENCIA().

Here is the call graph for this function:

int compilador::an_DROPTABLE void   )  [private]
 

Definition at line 733 of file compilador.cpp.

References lcomandos::agregar(), base, database::borrar(), c_borrar, error(), linea, listacomand, nombre, obtener_pieza(), p_identificador, p_puntoycoma, and pieza_actual.

Referenced by an_SENTENCIA().

Here is the call graph for this function:

int compilador::an_EXPRESION tabla taux,
listaselect lwhere
[private]
 

Definition at line 1244 of file compilador.cpp.

References an_COMPUTO(), obtener_pieza(), p_and, p_or, and pieza_actual.

Referenced by an_DELETE(), an_FACTOR(), an_SELECT(), and an_UPDATE().

Here is the call graph for this function:

int compilador::an_FACTOR tabla taux,
listaselect lwhere
[private]
 

Definition at line 1333 of file compilador.cpp.

References an_EXPRESION(), error(), obtener_pieza(), p_abrir_parentesis, p_cerrar_parentesis, p_decimal, p_entero, p_false, p_identificador, p_literal, p_mas, p_menos, p_no, p_true, and pieza_actual.

Referenced by an_TERMINO().

Here is the call graph for this function:

int compilador::an_INSERT void   )  [private]
 

Definition at line 994 of file compilador.cpp.

References lcomandos::agregar(), listaselect::agregar(), analiza_expresion(), base, listaselect::buscar(), tabla::buscar(), database::buscar(), c_cargar, error(), linea, listacomand, objeto::nombre, nodoselect::nombre, nombre, obtener_pieza(), p_abrir_parentesis, p_cerrar_parentesis, p_coma, p_decimal, p_entero, p_false, p_identificador, p_into, p_literal, p_puntoycoma, p_true, p_values, pieza_actual, and nodoselect::values().

Referenced by an_SENTENCIA().

Here is the call graph for this function:

int compilador::an_OPENTABLE void   )  [private]
 

Definition at line 752 of file compilador.cpp.

References abrirtabla(), base, error(), nombre, obtener_pieza(), p_identificador, p_puntoycoma, and pieza_actual.

Referenced by an_SENTENCIA().

Here is the call graph for this function:

int compilador::an_PACKTABLE void   )  [private]
 

Definition at line 792 of file compilador.cpp.

References lcomandos::agregar(), base, database::buscar(), c_fpack, error(), linea, listacomand, nombre, obtener_pieza(), p_identificador, p_puntoycoma, and pieza_actual.

Referenced by an_SENTENCIA().

Here is the call graph for this function:

int compilador::an_PROGRAMA void   )  [private]
 

Definition at line 442 of file compilador.cpp.

References an_SENTENCIA(), p_eof, and pieza_actual.

Referenced by compilar(), compilar_archivo(), and compilar_sentencia().

Here is the call graph for this function:

int compilador::an_SELECT void   )  [private]
 

Definition at line 807 of file compilador.cpp.

References lcomandos::agregar(), tabla::agregar(), listaselect::agregar(), an_EXPRESION(), base, tabla::buscar(), database::buscar(), c_seleccionar, c_visualizar, tabla::campos, nodoselect::encontrado, error(), linea, listacomand, objeto::next, nodoselect::next, listaselect::nodos, objeto::nombre, nodoselect::nombre, nombre, obtener_pieza(), p_coma, p_from, p_identificador, p_multiplicar, p_orderby, p_puntoycoma, p_where, and pieza_actual.

Referenced by an_SENTENCIA().

Here is the call graph for this function:

int compilador::an_SENTENCIA void   )  [private]
 

Definition at line 462 of file compilador.cpp.

References an_ALTERTABLE(), an_CREATETABLE(), an_DELETE(), an_DROPTABLE(), an_INSERT(), an_OPENTABLE(), an_PACKTABLE(), an_SELECT(), an_UPDATE(), error(), p_altertable, p_createtable, p_delete, p_droptable, p_insert, p_opentable, p_packtable, p_select, p_update, and pieza_actual.

Referenced by an_PROGRAMA().

Here is the call graph for this function:

int compilador::an_TERMINO tabla taux,
listaselect lwhere
[private]
 

Definition at line 1312 of file compilador.cpp.

References an_FACTOR(), obtener_pieza(), p_dividir, p_modulo, p_multiplicar, and pieza_actual.

Referenced by an_VALOR().

Here is the call graph for this function:

int compilador::an_UPDATE void   )  [private]
 

Definition at line 1089 of file compilador.cpp.

References lcomandos::agregar(), listaselect::agregar(), tabla::agregar(), an_EXPRESION(), analiza_expresion(), base, tabla::buscar(), database::buscar(), c_modificar, c_seleccionar, tabla::campos, error(), listaselect::find(), linea, listacomand, objeto::nombre, nombre, obtener_pieza(), p_coma, p_decimal, p_entero, p_false, p_identificador, p_igual, p_literal, p_puntoycoma, p_set, p_true, p_where, pieza_actual, and nodoselect::values().

Referenced by an_SENTENCIA().

Here is the call graph for this function:

int compilador::an_VALOR tabla taux,
listaselect lwhere
[private]
 

Definition at line 1295 of file compilador.cpp.

References an_TERMINO(), obtener_pieza(), p_mas, p_menos, and pieza_actual.

Referenced by an_COMPUTO().

Here is the call graph for this function:

int compilador::analiza_expresion tabla taux,
int  pieza1,
int  pieza2,
char *  nombre1,
char *  nombre2
[private]
 

Definition at line 1181 of file compilador.cpp.

References tabla::buscar(), objeto::decimal, error(), objeto::longitud, p_char, p_date, p_decimal, p_entero, p_false, p_float, p_identificador, p_int, p_literal, p_logical, p_true, partedecimal(), partentera(), and objeto::tipo.

Referenced by an_COMPUTO(), an_INSERT(), and an_UPDATE().

Here is the call graph for this function:

lcomandos * compilador::compilar char  source[1024],
int  longitud,
int  line
 

Definition at line 81 of file compilador.cpp.

References AfxMessageBox(), an_PROGRAMA(), base, database::borrartodo(), finalizacion_lexica(), inicializacion_lexica(), listacomand, and obtener_pieza().

Referenced by main().

Here is the call graph for this function:

lcomandos * compilador::compilar_archivo char *  nombre  ) 
 

Definition at line 24 of file compilador.cpp.

References AfxMessageBox(), an_PROGRAMA(), archivo, base, database::borrartodo(), finalizacion_lexica(), inicializacion_lexica(), listacomand, and obtener_pieza().

Here is the call graph for this function:

lcomandos * compilador::compilar_sentencia char *  query  ) 
 

Definition at line 52 of file compilador.cpp.

References AfxMessageBox(), an_PROGRAMA(), base, database::borrartodo(), finalizacion_lexica(), inicializacion_lexica_sentencia(), listacomand, and obtener_pieza().

Referenced by procesarQuery().

Here is the call graph for this function:

void compilador::error int  ,
int  pieza1 = 0,
int  pieza2 = 0,
char *  nombre1 = NULL,
char *  nombre2 = NULL
[private]
 

Definition at line 1388 of file compilador.cpp.

References AfxMessageBox(), finalizacion_lexica(), itoa(), linea, nombre, p_error, pieza_actual, and piezas.

Referenced by abrirtabla(), an_ALTERTABLE(), an_CREATETABLE(), an_DELETE(), an_DROPTABLE(), an_FACTOR(), an_INSERT(), an_OPENTABLE(), an_PACKTABLE(), an_SELECT(), an_SENTENCIA(), an_UPDATE(), and analiza_expresion().

Here is the call graph for this function:

int compilador::es_alfabetico char   )  [private]
 

Definition at line 414 of file compilador.cpp.

Referenced by obtener_pieza().

int compilador::es_alfanumerico char   )  [private]
 

Definition at line 403 of file compilador.cpp.

Referenced by leer_palabra().

int compilador::es_numerico char   )  [private]
 

Definition at line 425 of file compilador.cpp.

Referenced by leer_numero(), and obtener_pieza().

void compilador::finalizacion_lexica void   )  [private]
 

Definition at line 196 of file compilador.cpp.

References fuente.

Referenced by compilar(), compilar_archivo(), compilar_sentencia(), and error().

void compilador::inicializacion_lexica char  source[1024],
int  longitud,
int  line
[private]
 

Definition at line 168 of file compilador.cpp.

References _cr, fuente, indice, linea, and long_fuente.

void compilador::inicializacion_lexica char *   )  [private]
 

Definition at line 128 of file compilador.cpp.

References _cr, fuente, indice, linea, and long_fuente.

Referenced by compilar(), and compilar_archivo().

void compilador::inicializacion_lexica_sentencia char *  sentencia  ) 
 

Definition at line 111 of file compilador.cpp.

References _cr, fuente, indice, linea, and long_fuente.

Referenced by compilar_sentencia().

void compilador::leer_etiqueta void   )  [private]
 

char compilador::leer_fuente void   )  [private]
 

Definition at line 294 of file compilador.cpp.

References _lf, fuente, indice, linea, and long_fuente.

void compilador::leer_literal char   )  [private]
 

Definition at line 383 of file compilador.cpp.

References _cr, indice, nombre, p_error, p_literal, and pieza_actual.

Referenced by obtener_pieza().

void compilador::leer_numero void   )  [private]
 

Definition at line 327 of file compilador.cpp.

References es_numerico(), indice, nombre, p_decimal, p_entero, and pieza_actual.

Referenced by obtener_pieza().

Here is the call graph for this function:

void compilador::leer_palabra void   )  [private]
 

Definition at line 308 of file compilador.cpp.

References es_alfanumerico(), indice, nombre, p_distinto, p_identificador, p_select, pieza_actual, and piezas.

Referenced by obtener_pieza().

Here is the call graph for this function:

void compilador::obtener_pieza void   )  [private]
 

Definition at line 206 of file compilador.cpp.

References es_alfabetico(), es_numerico(), fuente, indice, leer_literal(), leer_numero(), leer_palabra(), long_fuente, p_abrir_corchete, p_abrir_llaves, p_abrir_parentesis, p_cerrar_corchete, p_cerrar_llaves, p_cerrar_parentesis, p_coma, p_distinto, p_dividir, p_dos_puntos, p_eof, p_error, p_igual, p_mas, p_mayor, p_mayor_igual, p_menor, p_menor_igual, p_menos, p_modulo, p_multiplicar, p_puntoycoma, pieza_actual, and traer_caracter().

Referenced by an_ALTERTABLE(), an_COMPUTO(), an_CREATETABLE(), an_DELETE(), an_DROPTABLE(), an_EXPRESION(), an_FACTOR(), an_INSERT(), an_OPENTABLE(), an_PACKTABLE(), an_SELECT(), an_TERMINO(), an_UPDATE(), an_VALOR(), compilar(), compilar_archivo(), and compilar_sentencia().

Here is the call graph for this function:

void compilador::traer_caracter void   )  [private]
 

Definition at line 277 of file compilador.cpp.

References _cr, _lf, _tab, fuente, indice, linea, and long_fuente.

Referenced by obtener_pieza().


Member Data Documentation

char* compilador::archivo [private]
 

Definition at line 27 of file compilador.h.

Referenced by compilador(), compilar_archivo(), and ~compilador().

database compilador::base [private]
 

Definition at line 28 of file compilador.h.

Referenced by an_ALTERTABLE(), an_CREATETABLE(), an_DELETE(), an_DROPTABLE(), an_INSERT(), an_OPENTABLE(), an_PACKTABLE(), an_SELECT(), an_UPDATE(), compilar(), compilar_archivo(), and compilar_sentencia().

char* compilador::fuente [private]
 

Definition at line 24 of file compilador.h.

Referenced by finalizacion_lexica(), inicializacion_lexica(), inicializacion_lexica_sentencia(), leer_fuente(), obtener_pieza(), traer_caracter(), and ~compilador().

char* compilador::indice [private]
 

Definition at line 26 of file compilador.h.

Referenced by inicializacion_lexica(), inicializacion_lexica_sentencia(), leer_fuente(), leer_literal(), leer_numero(), leer_palabra(), obtener_pieza(), and traer_caracter().

long compilador::linea [private]
 

Definition at line 21 of file compilador.h.

Referenced by an_ALTERTABLE(), an_CREATETABLE(), an_DELETE(), an_DROPTABLE(), an_INSERT(), an_PACKTABLE(), an_SELECT(), an_UPDATE(), error(), inicializacion_lexica(), inicializacion_lexica_sentencia(), leer_fuente(), and traer_caracter().

lcomandos compilador::listacomand
 

Definition at line 74 of file compilador.h.

Referenced by an_ALTERTABLE(), an_CREATETABLE(), an_DELETE(), an_DROPTABLE(), an_INSERT(), an_PACKTABLE(), an_SELECT(), an_UPDATE(), compilar(), compilar_archivo(), and compilar_sentencia().

long compilador::long_fuente [private]
 

Definition at line 25 of file compilador.h.

Referenced by inicializacion_lexica(), inicializacion_lexica_sentencia(), leer_fuente(), obtener_pieza(), and traer_caracter().

char compilador::nombre[long_linea] [private]
 

Definition at line 23 of file compilador.h.

Referenced by an_ALTERTABLE(), an_COMPUTO(), an_CREATETABLE(), an_DELETE(), an_DROPTABLE(), an_INSERT(), an_OPENTABLE(), an_PACKTABLE(), an_SELECT(), an_UPDATE(), error(), leer_literal(), leer_numero(), and leer_palabra().

int compilador::pieza_actual [private]
 

Definition at line 22 of file compilador.h.

Referenced by an_ALTERTABLE(), an_COMPUTO(), an_CREATETABLE(), an_DELETE(), an_DROPTABLE(), an_EXPRESION(), an_FACTOR(), an_INSERT(), an_OPENTABLE(), an_PACKTABLE(), an_PROGRAMA(), an_SELECT(), an_SENTENCIA(), an_TERMINO(), an_UPDATE(), an_VALOR(), error(), leer_literal(), leer_numero(), leer_palabra(), and obtener_pieza().


The documentation for this class was generated from the following files:
Generated on Wed Sep 14 15:51:09 2005 for TecnoDB by  doxygen 1.4.4