Ethgoin commited on
Commit
4892b6f
·
verified ·
1 Parent(s): 0af5ad8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -16
app.py CHANGED
@@ -1,29 +1,44 @@
1
  import gradio as gr
2
  import json
3
- from lexer import lexer
4
- from parser import Parser
5
- from semantico import AnalizadorSemantico
6
 
7
- def analizar_codigo(archivo_ruta):
8
  try:
9
- with open(archivo_ruta, "r", encoding="utf-8") as f:
10
- contenido = f.read()
11
- tokens = lexer(contenido)
12
- parser = Parser(tokens)
13
- ast = parser.parse()
14
- analizador = AnalizadorSemantico(ast)
15
- resultado = analizador.analizar()
16
- errores = "\\n".join(resultado["errores_semanticos"])
17
- return errores, json.dumps(resultado, indent=2)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  except Exception as e:
19
- return f"Error: {e}", "{}"
20
 
21
  gr.Interface(
22
  fn=analizar_codigo,
23
  inputs=gr.File(label="Sube tu archivo de código (.txt)"),
24
  outputs=[
25
- gr.Textbox(label="Errores detectados"),
26
  gr.Code(label="Contenido de analisis.json", language="json")
27
  ],
28
- title="Analizador Semántico - Lenguaje de Robots"
 
29
  ).launch()
 
1
  import gradio as gr
2
  import json
3
+ import shutil
4
+ from main import main # Ejecutará el flujo completo que incluye NLP, parser, semántico, código intermedio
 
5
 
6
+ def analizar_codigo(archivo):
7
  try:
8
+ # Guardar archivo subido como entrada.txt (como espera main.py)
9
+ ruta = "entrada.txt"
10
+ shutil.copy(archivo.name, ruta)
11
+
12
+ # Ejecutar análisis completo
13
+ main()
14
+
15
+ # Leer salida del análisis
16
+ with open("analisis.json", "r", encoding="utf-8") as f:
17
+ resultado = json.load(f)
18
+
19
+ # Extraer mensajes combinados
20
+ errores = []
21
+ for err in resultado.get("errores_parser", []):
22
+ errores.append(f"[Parser] {err}")
23
+ for err in resultado.get("errores_semanticos", []):
24
+ errores.append(f"[Semántico] {err['mensaje']} → {err['sugerencia']}")
25
+ for c in resultado.get("comentarios", []):
26
+ errores.append(f"[Comentario] {c['comentario']} → {c['sugerencia']}")
27
+
28
+ salida_texto = "\n".join(errores) if errores else "Análisis completado sin errores."
29
+
30
+ return salida_texto, json.dumps(resultado, indent=2)
31
+
32
  except Exception as e:
33
+ return f"Error crítico: {e}", "{}"
34
 
35
  gr.Interface(
36
  fn=analizar_codigo,
37
  inputs=gr.File(label="Sube tu archivo de código (.txt)"),
38
  outputs=[
39
+ gr.Textbox(label="Errores, sugerencias y anotaciones"),
40
  gr.Code(label="Contenido de analisis.json", language="json")
41
  ],
42
+ title="Analizador Semántico con NLP - Lenguaje de Robots",
43
+ description="Detecta errores, genera sugerencias y transforma comentarios usando Hugging Face NLP."
44
  ).launch()