def VerificarInstruccionesListaDeclaraciones(ArbolInstrucciones,tipoRobot):
    '''
      * Descripción de la función: Dado un árbol de instrucciones, un 
        tipo y una tabla de símbolos verifica la correctitud semántica de las 
        instrucciones de la lista de declaraciones del lenguaje BOT.
      * Variables de entrada: 
            - ArbolInstrucciones: Lista enlazada de instrucciones.
            - tipoRobot: Tipo de variables (tipo del robot).
      * Variables de salida: 
            - ListaTablas: Arreglo de tabla de simbolos.
    '''

    ListaTablas = []
    aux = ArbolInstrucciones

    while (aux != None):

        instrucciones = aux.instrucciones
        TablaLocal = TablaSimbolos(Ultimo)
        TablaLocal.insertar("me",tipoRobot)
        while (instrucciones != None):    

            # Se verifican las expresiones de las instrucciones STORE,DROP,
            #  RIGHT, LEFT, UP y DOWN:
            if (instrucciones.type in {"STORE","DROP","right","left","up","down"}):

                Tipo = VerificarExpresionBinaria(instrucciones.expresiones,
                                                TablaLocal)

                if (instrucciones.type in {"right","left","up","down"}):

                    if (Tipo != None):
                        VerificarTipoVariable(Tipo,"int",
                            instrucciones.numeroLinea)

                # El tipo de expresión de la instruccion STORE debe ser
                # igual al tipo del robot:
                elif (instrucciones.type == "STORE"):
                    VerificarTipoVariable(Tipo,tipoRobot,
                        instrucciones.numeroLinea)

            # Se verifican los identificadores de las instrucciones COLLECT 
            # y READ:
            elif (instrucciones.type in {"COLLECT","READ"}):

                identificador = instrucciones.identificador
                if (identificador != None):
                    resultado = TablaLocal.buscarLocal(identificador.value)
 
                    if(resultado!=None):
                        
                        print("Error en línea",
                            identificador.numeroLinea ,": La variable \'"+
                            str(identificador.value)+"\' ha sido redeclarada.")
                        sys.exit()

                    else:
                        # Se almacenan las nuevas variables a la tabla:
                        TablaLocal.insertar(identificador.value,
                            tipoRobot,aux.condicion.type)

      
            instrucciones = instrucciones.sig

        TablaLocal.tipo = aux.condicion.type

        ListaTablas += [TablaLocal]    

        aux = aux.sig

    return ListaTablas