Package tslib
Class TS_Gestor
java.lang.Object
tslib.TS_Gestor
public class TS_Gestor
extends java.lang.Object
Gestiona las tablas de símbolos.
- Author:
- Carolina Garza Bravo
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TS_Gestor.DescripcionAtributo
Tipos de atributos predefinidos de una entrada.static class
TS_Gestor.Tabla
Tipos de tablas de símbolos.static class
TS_Gestor.TipoDatoAtributo
Formas de representar el valor del atributo. -
Constructor Summary
Constructors Constructor Description TS_Gestor(java.lang.String nombre_fichero)
Crea el gestor de tablas de símbolos. -
Method Summary
Modifier and Type Method Description void
activarDebug()
Activa los mensajes de error por pantalla.int
addEntradaTPalabrasReservadas(java.lang.String lex)
Añade una entrada a la tabla de palabras reservadas.int
addEntradaTSGlobal(java.lang.String lex)
Añade una entrada a la tabla global.int
addEntradaTSLocal(java.lang.String lex)
Añade una entrada a la tabla local.int
createAtributo(java.lang.String nombre_atr, TS_Gestor.DescripcionAtributo tipo_des, TS_Gestor.TipoDatoAtributo tipo_valor)
Define un atributo.int
createTPalabrasReservadas()
Crea la tabla de palabras reservadasint
createTSGlobal()
Crea la tabla global.int
createTSLocal()
Crea una tabla local.void
desactivarDebug()
Desactiva los mensajes de error por pantalla.int
destroy(TS_Gestor.Tabla tabla)
Destruye una tabla de símbolos.int
getEntradaTPalabrasReservadas(java.lang.String lex)
Busca en la tabla de palabras reservadas una palabra reservada.int
getEntradaTS(java.lang.String lex)
Busca en la tabla global y local (si existe).int
getEntradaTSGlobal(java.lang.String lex)
Busca en la tabla global un identificador.int
getEntradaTSLocal(java.lang.String lex)
Busca en la tabla local un identificador.java.lang.String
getTipo(int pos)
Devuelve el tipo de un identificador.java.lang.String
getValorAtributoCad(int pos, java.lang.String atr)
Devuelve el valor de cadena de un atributo de un identificador.int
getValorAtributoEnt(int pos, java.lang.String atr)
Devuelve el valor entero de un atributo de un identificador.java.lang.String[]
getValorAtributoLista(int pos, java.lang.String atr)
Devuelve el valor en forma de lista de cadenas de un atributo de un identificador.int
setTipo(int pos, java.lang.String tipo_id)
Añade el tipo de un identificador y añade los atributos pertinentes.int
setValorAtributoCad(int pos, java.lang.String atr, java.lang.String valor)
Da valor de cadena a un atributo de un identificador.int
setValorAtributoEnt(int pos, java.lang.String atr, int valor)
Da valor entero a un atributo de un identificador.int
setValorAtributoLista(int pos, java.lang.String atr, java.lang.String[] valor)
Da valor en forma de lista de cadenas de un atributo de un identificador.int
show(TS_Gestor.Tabla tabla)
Muestra por pantalla una tabla de símbolos.int
write(TS_Gestor.Tabla tabla)
Escribe en un fichero la representación de una tabla de símbolos.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
TS_Gestor
public TS_Gestor(java.lang.String nombre_fichero)Crea el gestor de tablas de símbolos.- Parameters:
nombre_fichero
- Fichero en el que se escribirán las tablas cuando se necesite.
-
-
Method Details
-
activarDebug
public void activarDebug()Activa los mensajes de error por pantalla. -
desactivarDebug
public void desactivarDebug()Desactiva los mensajes de error por pantalla. -
createTPalabrasReservadas
public int createTPalabrasReservadas()Crea la tabla de palabras reservadas- Returns:
- 0 si todo ha ido bien o 1 si se está intentando crear una tabla de palabras reservadas cuando ya existe una.
-
createTSGlobal
public int createTSGlobal()Crea la tabla global.- Returns:
- 0 si todo ha ido bien, 1 si se está intentando crear una tabla que ya existe, 2 si no se ha declarado la tabla de palabras reservadas antes o 3 si no se han definido los atributos.
-
createTSLocal
public int createTSLocal()Crea una tabla local.- Returns:
- 0 si todo ha ido bien, 2 si no se ha creado la tabla global o 14 si no se ha creado la tabla de palabras reservadas antes.
-
createAtributo
public int createAtributo(java.lang.String nombre_atr, TS_Gestor.DescripcionAtributo tipo_des, TS_Gestor.TipoDatoAtributo tipo_valor)Define un atributo.- Parameters:
nombre_atr
- Nombre del atributo.tipo_des
- Descripción del atributo.tipo_valor
- Tipo de dato del atributo.- Returns:
- 0 si todo ha salido bien, 4 si se está definiendo un atributo ya definido, 11 si se quiere utilizar un nombre para un atributo que ya está asignado a otro atributo o 13 si el nombre del atributo no es válido.
-
addEntradaTPalabrasReservadas
public int addEntradaTPalabrasReservadas(java.lang.String lex)Añade una entrada a la tabla de palabras reservadas.- Parameters:
lex
- Palabra reservada.- Returns:
- La posición en la que se ha añadido, 0 si la tabla de palabras reservadas no existe o si la palabra reservada a añadir ya está en la tabla de palabras reservadas.
-
addEntradaTSGlobal
public int addEntradaTSGlobal(java.lang.String lex)Añade una entrada a la tabla global.- Parameters:
lex
- Lexema del identificador.- Returns:
- La posición en la que se ha añadido, 0 si la tabla global no existe o si el identificador a añadir ya está en la tabla de símbolos global.
-
addEntradaTSLocal
public int addEntradaTSLocal(java.lang.String lex)Añade una entrada a la tabla local.- Parameters:
lex
- Lexema del identificador.- Returns:
- La posición en la que se ha añadido, 0 si la tabla local lo existe o si el identificador a añadir ya está en la tabla de símbolos local.
-
getEntradaTPalabrasReservadas
public int getEntradaTPalabrasReservadas(java.lang.String lex)Busca en la tabla de palabras reservadas una palabra reservada.- Parameters:
lex
- Palabra Reservada- Returns:
- La posición de la palabra reservada o 0 si no se ha encontrado. También devuelve 0 si la tabla de palabras reservadas no está creada.
-
getEntradaTSGlobal
public int getEntradaTSGlobal(java.lang.String lex)Busca en la tabla global un identificador.- Parameters:
lex
- Lexema del identificador.- Returns:
- La posición del identificador en la tabla global o 0 si no se ha encontrado. También devuelve 0 si la tabla global no está creada.
-
getEntradaTSLocal
public int getEntradaTSLocal(java.lang.String lex)Busca en la tabla local un identificador.- Parameters:
lex
- Lexema del identificador.- Returns:
- La posición del identificador en la tabla local o 0 si no se ha encontrado. También devuelve 0 si la tabla local no está creada.
-
getEntradaTS
public int getEntradaTS(java.lang.String lex)Busca en la tabla global y local (si existe).- Parameters:
lex
- Lexema del identificador.- Returns:
- La posición del identificador en la tabla en la que está o 0 si no se ha encontrado. También devuelve 0 si la tabla global no está creada.
-
setTipo
public int setTipo(int pos, java.lang.String tipo_id)Añade el tipo de un identificador y añade los atributos pertinentes. Si el tipo es entero, cadena, real, lógico, puntero o vector se añadirán los atributos dirección y param. Si el tipo es función o procedimiento se añadirán los atributos número de parámetros, tipo de parámetros, modo de parámetros, tipo de retorno y etiqueta. En cualquier caso, se añadirán los atributos OTROS si se han definido.- Parameters:
pos
- Posición del identificador.tipo_id
- Tipo que se le quiere poner al identificador. Los tipos posibles son: función, procedimiento, entero, cadena, real, lógico, puntero y vector.- Returns:
- 0 si todo ha salido bien, 5 si la posición no es correcta, 6 si el tipo no es correcto, 7 si el tipo ya existía o 10 si la tabla en la que estaría el identificador no existe o 12 si se intenta añadir el tipo función a un identificador de la tabla local.
-
getTipo
public java.lang.String getTipo(int pos)Devuelve el tipo de un identificador.- Parameters:
pos
- Posición del identificador.- Returns:
- El tipo de la entrada en la posición pos o null si hay error, que puede ser que la posición no sea correcta o que la tabla en la que estaría el identificador no existe.
-
setValorAtributoEnt
public int setValorAtributoEnt(int pos, java.lang.String atr, int valor)Da valor entero a un atributo de un identificador.- Parameters:
pos
- Posición del identificador.atr
- Nombre del atributo.valor
- Valor del atributo.- Returns:
- 0 si todo ha salido bien, 5 si la posición no es correcta, 7 si el atributo ya tenía un valor asignado, 8 si el tipo de dato del atributo no está definido como ENTERO, 9 si el atributo no existe o 10 si la tabla en la que estaría el identificador no existe.
-
getValorAtributoEnt
public int getValorAtributoEnt(int pos, java.lang.String atr)Devuelve el valor entero de un atributo de un identificador.- Parameters:
pos
- Posición del identificador.atr
- Nombre del atributo.- Returns:
- El valor entero del atributo atr del identificador de la posición pos o -1 si hay error, que puede ser que el atributo o la posición no sean correctos, que la tabla en la que estaría el identificador no existe o que el atributo no esté declarado como ENTERO.
-
setValorAtributoCad
public int setValorAtributoCad(int pos, java.lang.String atr, java.lang.String valor)Da valor de cadena a un atributo de un identificador.- Parameters:
pos
- Posición del identificador.atr
- Nombre del atributo.valor
- Valor del atributo.- Returns:
- 0 si todo ha salido bien, 5 si la posición no es correcta, 7 si el atributo ya tenía un valor asignado, 8 si el tipo de dato del atributo no está definido como CADENA, 9 si el atributo no existe o 10 si la tabla en la que estaría el identificador no existe.
-
getValorAtributoCad
public java.lang.String getValorAtributoCad(int pos, java.lang.String atr)Devuelve el valor de cadena de un atributo de un identificador.- Parameters:
pos
- Posición del identificador.atr
- Nombre del atributo.- Returns:
- El valor de cadena del atributo atr del identificador de la posición pos o null si hay error, que puede ser que el atributo o la posición no sean correctos, que la tabla en la que estaría el identificador no existe o que el atributo no esté declarado como CADENA.
-
setValorAtributoLista
public int setValorAtributoLista(int pos, java.lang.String atr, java.lang.String[] valor)Da valor en forma de lista de cadenas de un atributo de un identificador.- Parameters:
pos
- Posición del identificador.atr
- Nombre del atributo.valor
- Valor del atributo.- Returns:
- 0 si todo ha salido bien, 5 si la posición no es correcta, 7 si el atributo ya tenía un valor asignado, 8 si el tipo de dato del atributo no está definido como LISTA, 9 si el atributo no existe o 10 si la tabla en la que estaría el identificador no existe.
-
getValorAtributoLista
public java.lang.String[] getValorAtributoLista(int pos, java.lang.String atr)Devuelve el valor en forma de lista de cadenas de un atributo de un identificador.- Parameters:
pos
- Posición del identificador.atr
- Nombre del atributo.- Returns:
- El valor en forma de lista de cadenas del atributo atr del identificador de la posición pos o null si hay error, que puede ser que el atributo o la posición no sean correctos, que la tabla en la que estaría el identificador no existe o que el atributo no esté declarado como LISTA.
-
show
Muestra por pantalla una tabla de símbolos.- Parameters:
tabla
- Tabla que se quiere mostrar.- Returns:
- 0 si todo ha salido bien o 10 si la tabla que se quiere mostrar no existe.
-
write
Escribe en un fichero la representación de una tabla de símbolos.- Parameters:
tabla
- Tabla que se quiere escribir.- Returns:
- 0 si se ha escrito correctamente o 10 si la tabla que se quiere escribir no existe.
-
destroy
Destruye una tabla de símbolos.- Parameters:
tabla
- Tabla que se quiere destruir.- Returns:
- 0 si todo ha salido bien, 10 si la tabla que se quiere destruir no existe, 15 si se está intentando destruir la tabla global sin haber destruido la tabla local o 16 si se está intentando destruir la tabla de palabras reservadas sin haber destruido la tabla global.
-