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 reservadas
    int 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

      public int show​(TS_Gestor.Tabla tabla)
      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

      public int write​(TS_Gestor.Tabla tabla)
      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

      public int destroy​(TS_Gestor.Tabla tabla)
      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.