Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ''
- Created on 21 nov. 2019
- @author: Webon_5X
- '''
- from jflap.Afd import Afd
- from sys import stderr
- def es_valida(fichero, automata):
- contador = 1
- lineas = fichero.readlines()
- for linea in lineas:
- c = 0
- estadoActual = automata.getEstadoInicial()
- while( c < (len(linea)-1)):
- entrada = linea[c] + linea[c+1]
- estadoSig = automata.estadoSiguiente(estadoActual, entrada)
- if((estadoSig==None) and (not automata.esFinal(estadoActual))):
- print("Línea " + str(contador) + " la cadena '" + linea.rstrip('\n') + "' no es válida en el digito", c)
- estadoActual=estadoSig
- if((c+3 >= len(linea)) and (automata.esFinal(estadoActual))):
- print("Línea " + str(contador) + " la cadena '" + linea.rstrip('\n') + "' es válida")
- c += 2
- linea = fichero.readline()
- contador += 1
- fichero.close()
- def automata_afd():
- ruta = r'C:\Users\Webon_5x\Desktop\ProyectoALFq.jff'
- try:
- automata = Afd(ruta)
- except FileNotFoundError:
- print('La ruta es incorrecta',file=stderr)
- except Exception as error:
- print('Ha habido problemas con el fichero:', error, file=stderr)
- return automata;
- def introduce_fichero():
- fichero_entrada=""
- print("Inserte un fichero para validar sus cadenas:")
- while True:
- fichero_entrada = input()
- if fichero_entrada == (''):
- print("Validacion cancelada, saliendo...")
- exit()
- else:
- try:
- print("Vamos a verificar que existe el fichero '" + fichero_entrada + "'")
- fichero_abrir = open(fichero_entrada);
- print("\nNo hay errores, empezamos a validarlo...\n");
- break
- except FileNotFoundError:
- print("El nombre del fichero es incorrecto, no se encontró el fichero '" + fichero_entrada + "'", file=stderr);
- print("\nInserte de nuevo un fichero para validar")
- return fichero_abrir;
- if __name__ == '__main__':
- fichero = introduce_fichero()
- automata = automata_afd()
- es_valida(fichero, automata)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement