No funciona el analisis sintactico
Publicado por Gimel (2 intervenciones) el 30/05/2014 07:24:53
Buenas, tengo el siguiente codigo:
Mi problema esta en que el analisis sintactico por alguna razon no pasa, el codigo trabaja al 100, pero me lanzá el siguiente mensaje:
"no pasó el analisis sintactico"
Por lo tanto la funcion procesar de sintactico esta tronando en algún lugar pero no logro encontrar dónde.
Gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
class Componente:
diccionario = []
def leer(self, nombreArchivo):
archi=open(nombreArchivo,'r')
linea = archi.readline()
indice = 0
while linea!="":
self.diccionario.insert(indice,linea.rstrip('\n'))
linea=archi.readline()
archi.close()
def escribir(self, nombreArchivo):
f = open(nombreArchivo,'w')
for variable in lexico.diccionario:
f.write(variable+" ")
f.close
def configurar(self):
print ("Esta funcion no tiene su funcionalidad")
def procesar(self):
print ("Esta funcion no tiene su funcionalidad")
class AnLexico(Componente):
validos = []
def configurar(self,nombreArchivo):
archi=open(nombreArchivo,'r')
linea = archi.readline()
self.validos.insert(0,' ')
indice = 1
while linea!="":
self.validos.insert(indice,linea.rstrip('\n'))
linea=archi.readline()
archi.close()
def procesar(self):
for token in lexico.diccionario:
bandera = False;
for tokenvalido in lexico.validos:
if token == tokenvalido:
bandera = True
break
if bandera == False:
return False
return True
class AnSintactico(Componente):
validos = []
def configurar(self,nombreArchivo):
archi=open(nombreArchivo,'r')
linea = archi.readline()
self.validos.insert(0,' ')
indice = 1
while linea!="":
self.validos.insert(indice,linea.rstrip('\n'))
linea=archi.readline()
archi.close()
def procesar (self):
nuevaLista = []
string = ""
indice = 0
for token in self.diccionario:
if token == " ":
nuevaLista.insert(indice,string)
string = ""
indice+=1
else:
string += token
nuevaLista.insert(indice,string)
self.diccionario = nuevaLista
for token in self.diccionario:
bandera = False;
for tokenvalido in self.validos:
if token == tokenvalido:
bandera = True
break
if bandera == False:
return False
return True
lexico = AnLexico()
lexico.leer("EjemploMorse.txt")
lexico.configurar("ConfigurarLexico.txt")
if lexico.procesar():
lexico.escribir("salida.txt")
sintactico = AnSintactico()
sintactico.leer("salida.txt")
sintactico.configurar("ConfigurarSintactico.txt")
if sintactico.procesar():
sintactico.escribir("salida2.txt")
print ("paso por ambos analisis")
else:
print ("no pasó el analisis sintactico")
else:
print ("No paso el analisis léxico")
Mi problema esta en que el analisis sintactico por alguna razon no pasa, el codigo trabaja al 100, pero me lanzá el siguiente mensaje:
"no pasó el analisis sintactico"
Por lo tanto la funcion procesar de sintactico esta tronando en algún lugar pero no logro encontrar dónde.
Gracias
Valora esta pregunta


0