Ethgoin commited on
Commit
60a2af1
·
verified ·
1 Parent(s): 79b1ec9

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +40 -11
main.py CHANGED
@@ -1,19 +1,48 @@
 
1
  from lexer import lexer
2
  from parser import Parser
3
  from semantico import AnalizadorSemantico
4
- import json
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
- with open("entrada.txt", "r", encoding="utf-8") as f:
7
- codigo = f.read()
 
 
8
 
9
- tokens = lexer(codigo)
10
- parser = Parser(tokens)
11
- ast = parser.parse()
 
 
12
 
13
- analizador = AnalizadorSemantico(ast)
14
- resultado = analizador.analizar()
15
 
16
- with open("analisis.json", "w", encoding="utf-8") as out:
17
- json.dump(resultado, out, indent=2)
 
 
 
18
 
19
- print("✔ Análisis completo. Resultados guardados en 'analisis.json'")
 
 
1
+ import json
2
  from lexer import lexer
3
  from parser import Parser
4
  from semantico import AnalizadorSemantico
5
+ from codigo_intermedio import GeneradorIntermedio
6
+ from sugerencias_nlp import procesar_comentarios
7
+
8
+ def sugerencia_dummy(mensaje):
9
+ return f"(sugerencia generada para: {mensaje})"
10
+
11
+ def main():
12
+ with open("entrada.txt", "r", encoding="utf-8") as f:
13
+ codigo = f.read()
14
+
15
+ tokens = lexer(codigo)
16
+ parser = Parser(tokens)
17
+ ast = parser.parse()
18
+
19
+ semantico = AnalizadorSemantico(ast)
20
+ resultado = semantico.analizar()
21
+
22
+ errores_ext = [
23
+ {"mensaje": err, "sugerencia": sugerencia_dummy(err)}
24
+ for err in resultado["errores_semanticos"]
25
+ ]
26
 
27
+ comentarios_ext = [
28
+ {"comentario": c, "sugerencia": s}
29
+ for c, s in procesar_comentarios(codigo)
30
+ ]
31
 
32
+ analisis_completo = {
33
+ "variables_declaradas": resultado["variables_declaradas"],
34
+ "errores_semanticos": errores_ext,
35
+ "comentarios": comentarios_ext
36
+ }
37
 
38
+ with open("analisis.json", "w", encoding="utf-8") as f:
39
+ json.dump(analisis_completo, f, indent=2)
40
 
41
+ generador = GeneradorIntermedio()
42
+ intermedio = generador.generar(ast)
43
+ with open("codigo_intermedio.txt", "w", encoding="utf-8") as f:
44
+ for linea in intermedio:
45
+ f.write(linea + "\n")
46
 
47
+ if __name__ == "__main__":
48
+ main()