CAnaLexico Class Reference

#include <CAnaLexico.h>

List of all members.

Public Member Functions

 CAnaLexico (char *Archivo)
 Constructor y Destructor.
 ~CAnaLexico ()
void AddPalabraReservada (string pr)
 Métodos SET/ADD.
const STokenGetSiguienteToken ()
 Métodos Get.

Static Public Attributes

static const int kToken_Error = -1
static const int kToken_Cadena = -2
static const int kToken_Entero = -3
static const int kToken_Double = -4
static const int kToken_Coma = -5
static const int kToken_ParentesisAbierto = -6
static const int kToken_ParentesisCerrado = -7
static const int kToken_CorcheteAbierto = -8
static const int kToken_CorcheteCerrado = -9
static const int kToken_EOF = -10
static const int kToken_Identificador = -11

Private Member Functions

int GetSiguienteCaracter ()
void PutCaracter (int caracter)

Private Attributes

TTokens m_vTokens
 Lista de tokens que el analizador debe reconocer.
SToken m_Token
 Último token procesado.
ifstream m_Archivo
 Stream del archivo de entrada a analizar.
string m_sNombreArchivo
 Nombre del archivo que se está analizando.
int m_nUltimaColumna
 Valor que tenía la columna en el caracter anterior, por si hubiera que reponer.
int m_nColumna
 Columna por la que actualmente va el analizador.
int m_nFila
 Fila por la que va actualmente el analizador.

Static Private Attributes

static const int kMaxParteEntera = 8
static const int kMaxParteDecimal = 8
static const int kMaxLongCadena = 200
static const int kMaxLongIdentificador = 40


Detailed Description

CLASE: CAnaLexico

Clase que aporta los métodos útiles para realizar el análisis léxico de un fichero de
datos de entrada.

Definition at line 51 of file CAnaLexico.h.


Constructor & Destructor Documentation

CAnaLexico::CAnaLexico char *  sArchivo  ) 
 

Constructor y Destructor.

Constructor principal del Analizador Léxico.

Se ocupa de inicializar todos los atributos del analizador léxico, así como de abrir
el fichero de entrada y convertirlo en stream, comprobando que se abre correctamente.

Parameters:
Archivo Cadena de texto con la ruta del archivo a abrir

Definition at line 42 of file CAnaLexico.cpp.

References Err_NoSeEncuentraFichero, CSucesos::Error(), m_Archivo, m_nColumna, m_nFila, m_nUltimaColumna, m_sNombreArchivo, m_vTokens, and CSucesos::SetCadenaError().

CAnaLexico::~CAnaLexico  ) 
 

Destructor del analizador léxico.

Debe asegurarse de que todo queda bien limpio y cerradito.

Definition at line 69 of file CAnaLexico.cpp.

References m_Archivo, and m_vTokens.


Member Function Documentation

void CAnaLexico::AddPalabraReservada string  pr  )  [inline]
 

Métodos SET/ADD.

Definition at line 74 of file CAnaLexico.h.

References m_vTokens.

int CAnaLexico::GetSiguienteCaracter  )  [private]
 

Obtener siguiente caracter del stream de entrada

Obtiene el siguiente carácter que haya en el stream de entrada y se ocupa de actualizar
la posición del cursor (Fila y Columna).

Returns:
Entero correspondiente al siguiente caracter leído en el stream.

Definition at line 88 of file CAnaLexico.cpp.

References Const_Globales::Ancho_Tabulador, g_Constantes, m_Archivo, m_nColumna, m_nFila, and m_nUltimaColumna.

Referenced by GetSiguienteToken().

const SToken & CAnaLexico::GetSiguienteToken  ) 
 

Métodos Get.

Obtener siguiente token de la entrada.

Analiza léxicamente el fichero carácter a carácter y devuelve el siguiente token que haya
sido encontrado a partir de la posición actual.

Returns:
Estructura SToken constante con la información del token encontrado.

Definition at line 132 of file CAnaLexico.cpp.

References ALFABETICO, ALFANUMERICO, Err_CadenaMuyLarga, Err_CadenaSinCerrar, Err_CaracterInesperado, Err_IdentificadorMuyLargo, Err_NumeroFueraDeRango, CSucesos::Error(), GetSiguienteCaracter(), kMaxLongCadena, kMaxLongIdentificador, kMaxParteDecimal, kMaxParteEntera, kToken_Cadena, kToken_Coma, kToken_CorcheteAbierto, kToken_CorcheteCerrado, kToken_Double, kToken_Entero, kToken_EOF, kToken_Identificador, kToken_ParentesisAbierto, kToken_ParentesisCerrado, m_nColumna, m_nFila, m_sNombreArchivo, m_Token, m_vTokens, SToken::nColumna, SToken::nFila, SToken::nIndex, NUMERICO, PDECIMAL, PutCaracter(), SEPARADOR, CSucesos::SetCadenaError(), and SToken::sValor.

void CAnaLexico::PutCaracter int  caracter  )  [private]
 

Poner un caracter en la entrada.

Vuelve a colocar un caracter en el stream de entrada para que pueda ser leído
de nuevo en la siguiente llamada, formando parte del siguiente token.

Parameters:
caracter El caracter a reponer en el stream.

Definition at line 112 of file CAnaLexico.cpp.

References Const_Globales::Ancho_Tabulador, g_Constantes, m_Archivo, m_nColumna, m_nFila, and m_nUltimaColumna.

Referenced by GetSiguienteToken().


Member Data Documentation

const int CAnaLexico::kMaxLongCadena = 200 [static, private]
 

Definition at line 30 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kMaxLongIdentificador = 40 [static, private]
 

Definition at line 31 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kMaxParteDecimal = 8 [static, private]
 

Definition at line 29 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kMaxParteEntera = 8 [static, private]
 

CONSTANTES PRIVADAS

Constantes de uso común en el algoritmo

Definition at line 28 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kToken_Cadena = -2 [static]
 

Definition at line 14 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kToken_Coma = -5 [static]
 

Definition at line 17 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kToken_CorcheteAbierto = -8 [static]
 

Definition at line 20 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kToken_CorcheteCerrado = -9 [static]
 

Definition at line 21 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kToken_Double = -4 [static]
 

Definition at line 16 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kToken_Entero = -3 [static]
 

Definition at line 15 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kToken_EOF = -10 [static]
 

Definition at line 22 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kToken_Error = -1 [static]
 

CONSTANTES PUBLICAS

Identificadores especiales de token

Definition at line 13 of file CAnaLexico.cpp.

const int CAnaLexico::kToken_Identificador = -11 [static]
 

Definition at line 23 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kToken_ParentesisAbierto = -6 [static]
 

Definition at line 18 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

const int CAnaLexico::kToken_ParentesisCerrado = -7 [static]
 

Definition at line 19 of file CAnaLexico.cpp.

Referenced by GetSiguienteToken().

ifstream CAnaLexico::m_Archivo [private]
 

Stream del archivo de entrada a analizar.

Definition at line 81 of file CAnaLexico.h.

Referenced by CAnaLexico(), GetSiguienteCaracter(), PutCaracter(), and ~CAnaLexico().

int CAnaLexico::m_nColumna [private]
 

Columna por la que actualmente va el analizador.

Definition at line 84 of file CAnaLexico.h.

Referenced by CAnaLexico(), GetSiguienteCaracter(), GetSiguienteToken(), and PutCaracter().

int CAnaLexico::m_nFila [private]
 

Fila por la que va actualmente el analizador.

Definition at line 85 of file CAnaLexico.h.

Referenced by CAnaLexico(), GetSiguienteCaracter(), GetSiguienteToken(), and PutCaracter().

int CAnaLexico::m_nUltimaColumna [private]
 

Valor que tenía la columna en el caracter anterior, por si hubiera que reponer.

Definition at line 83 of file CAnaLexico.h.

Referenced by CAnaLexico(), GetSiguienteCaracter(), and PutCaracter().

string CAnaLexico::m_sNombreArchivo [private]
 

Nombre del archivo que se está analizando.

Definition at line 82 of file CAnaLexico.h.

Referenced by CAnaLexico(), and GetSiguienteToken().

SToken CAnaLexico::m_Token [private]
 

Último token procesado.

Definition at line 80 of file CAnaLexico.h.

Referenced by GetSiguienteToken().

TTokens CAnaLexico::m_vTokens [private]
 

Lista de tokens que el analizador debe reconocer.

Definition at line 79 of file CAnaLexico.h.

Referenced by AddPalabraReservada(), CAnaLexico(), GetSiguienteToken(), and ~CAnaLexico().


The documentation for this class was generated from the following files:
Generated on Fri May 13 16:32:36 2005 for Screaming Racers by  doxygen 1.4.2