Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
@@ -25,10 +25,12 @@ def sugerencia_nlp_error(error_msg):
|
|
25 |
if response.status_code == 200:
|
26 |
return response.json()[0]["generated_text"].strip()
|
27 |
return f"(sin sugerencia: {response.status_code})"
|
28 |
-
except:
|
|
|
29 |
return "(sugerencia no disponible por error de conexi贸n)"
|
30 |
|
31 |
def main():
|
|
|
32 |
with open("entrada.txt", "r", encoding="utf-8") as f:
|
33 |
codigo = f.read()
|
34 |
|
@@ -39,19 +41,25 @@ def main():
|
|
39 |
ast = []
|
40 |
|
41 |
try:
|
|
|
42 |
tokens = lexer(codigo)
|
43 |
parser = Parser(tokens)
|
44 |
try:
|
|
|
45 |
ast = parser.parse()
|
|
|
46 |
except SyntaxError as e:
|
|
|
47 |
errores_parser.append(str(e))
|
48 |
ast = []
|
49 |
except Exception as e:
|
50 |
-
|
|
|
51 |
ast = []
|
52 |
|
53 |
if ast:
|
54 |
try:
|
|
|
55 |
semantico = AnalizadorSemantico(ast)
|
56 |
resultado = semantico.analizar()
|
57 |
errores_semanticos = [
|
@@ -59,23 +67,29 @@ def main():
|
|
59 |
for err in resultado["errores_semanticos"]
|
60 |
]
|
61 |
variables = resultado["variables_declaradas"]
|
|
|
62 |
|
|
|
63 |
generador = GeneradorIntermedio()
|
64 |
intermedio = generador.generar(ast)
|
65 |
with open("codigo_intermedio.txt", "w", encoding="utf-8") as f:
|
66 |
for linea in intermedio:
|
67 |
f.write(linea + "\n")
|
68 |
except Exception as e:
|
|
|
69 |
errores_semanticos.append({"mensaje": str(e), "sugerencia": "(no procesado)"})
|
70 |
|
71 |
try:
|
|
|
72 |
comentarios_ext = [
|
73 |
{"comentario": c, "sugerencia": s}
|
74 |
for c, s in procesar_comentarios(codigo)
|
75 |
]
|
76 |
-
except:
|
|
|
77 |
comentarios_ext = []
|
78 |
|
|
|
79 |
analisis = {
|
80 |
"variables_declaradas": variables,
|
81 |
"errores_parser": errores_parser,
|
@@ -86,10 +100,12 @@ def main():
|
|
86 |
with open("analisis.json", "w", encoding="utf-8") as f:
|
87 |
json.dump(analisis, f, indent=2)
|
88 |
|
89 |
-
|
|
|
90 |
if __name__ == "__main__":
|
91 |
try:
|
92 |
main()
|
93 |
except Exception as e:
|
|
|
94 |
with open("analisis.json", "w", encoding="utf-8") as f:
|
95 |
json.dump({"error_fatal": str(e)}, f, indent=2)
|
|
|
25 |
if response.status_code == 200:
|
26 |
return response.json()[0]["generated_text"].strip()
|
27 |
return f"(sin sugerencia: {response.status_code})"
|
28 |
+
except Exception as e:
|
29 |
+
print("Error al obtener sugerencia NLP:", e)
|
30 |
return "(sugerencia no disponible por error de conexi贸n)"
|
31 |
|
32 |
def main():
|
33 |
+
print("Inicio del an谩lisis")
|
34 |
with open("entrada.txt", "r", encoding="utf-8") as f:
|
35 |
codigo = f.read()
|
36 |
|
|
|
41 |
ast = []
|
42 |
|
43 |
try:
|
44 |
+
print("Lexical analysis...")
|
45 |
tokens = lexer(codigo)
|
46 |
parser = Parser(tokens)
|
47 |
try:
|
48 |
+
print("Syntactic analysis...")
|
49 |
ast = parser.parse()
|
50 |
+
print("Parser completado con 茅xito")
|
51 |
except SyntaxError as e:
|
52 |
+
print("Error capturado en parser:", e)
|
53 |
errores_parser.append(str(e))
|
54 |
ast = []
|
55 |
except Exception as e:
|
56 |
+
print("Error en lexer o parser:", e)
|
57 |
+
errores_parser.append(f"Error cr铆tico: {str(e)}")
|
58 |
ast = []
|
59 |
|
60 |
if ast:
|
61 |
try:
|
62 |
+
print("An谩lisis sem谩ntico...")
|
63 |
semantico = AnalizadorSemantico(ast)
|
64 |
resultado = semantico.analizar()
|
65 |
errores_semanticos = [
|
|
|
67 |
for err in resultado["errores_semanticos"]
|
68 |
]
|
69 |
variables = resultado["variables_declaradas"]
|
70 |
+
print("Sem谩ntico completado")
|
71 |
|
72 |
+
print("Generando c贸digo intermedio...")
|
73 |
generador = GeneradorIntermedio()
|
74 |
intermedio = generador.generar(ast)
|
75 |
with open("codigo_intermedio.txt", "w", encoding="utf-8") as f:
|
76 |
for linea in intermedio:
|
77 |
f.write(linea + "\n")
|
78 |
except Exception as e:
|
79 |
+
print("Error en sem谩ntico:", e)
|
80 |
errores_semanticos.append({"mensaje": str(e), "sugerencia": "(no procesado)"})
|
81 |
|
82 |
try:
|
83 |
+
print("Procesando comentarios...")
|
84 |
comentarios_ext = [
|
85 |
{"comentario": c, "sugerencia": s}
|
86 |
for c, s in procesar_comentarios(codigo)
|
87 |
]
|
88 |
+
except Exception as e:
|
89 |
+
print("Error procesando comentarios:", e)
|
90 |
comentarios_ext = []
|
91 |
|
92 |
+
print("Escribiendo analisis.json...")
|
93 |
analisis = {
|
94 |
"variables_declaradas": variables,
|
95 |
"errores_parser": errores_parser,
|
|
|
100 |
with open("analisis.json", "w", encoding="utf-8") as f:
|
101 |
json.dump(analisis, f, indent=2)
|
102 |
|
103 |
+
print("An谩lisis completado.")
|
104 |
+
|
105 |
if __name__ == "__main__":
|
106 |
try:
|
107 |
main()
|
108 |
except Exception as e:
|
109 |
+
print("Error fatal en ejecuci贸n principal:", e)
|
110 |
with open("analisis.json", "w", encoding="utf-8") as f:
|
111 |
json.dump({"error_fatal": str(e)}, f, indent=2)
|