Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	| import gradio as gr | |
| import json | |
| import shutil | |
| from main import main # Ejecutará el flujo completo que incluye NLP, parser, semántico, código intermedio | |
| def analizar_codigo(archivo): | |
| try: | |
| # Guardar archivo subido como entrada.txt (como espera main.py) | |
| ruta = "entrada.txt" | |
| shutil.copy(archivo.name, ruta) | |
| # Ejecutar análisis completo | |
| main() | |
| # Leer salida del análisis | |
| with open("analisis.json", "r", encoding="utf-8") as f: | |
| resultado = json.load(f) | |
| # Extraer mensajes combinados | |
| errores = [] | |
| for err in resultado.get("errores_parser", []): | |
| errores.append(f"[Parser] {err}") | |
| for err in resultado.get("errores_semanticos", []): | |
| errores.append(f"[Semántico] {err['mensaje']} → {err['sugerencia']}") | |
| for c in resultado.get("comentarios", []): | |
| errores.append(f"[Comentario] {c['comentario']} → {c['sugerencia']}") | |
| salida_texto = "\n".join(errores) if errores else "Análisis completado sin errores." | |
| return salida_texto, json.dumps(resultado, indent=2) | |
| except Exception as e: | |
| return f"Error crítico: {e}", "{}" | |
| gr.Interface( | |
| fn=analizar_codigo, | |
| inputs=gr.File(label="Sube tu archivo de código (.txt)"), | |
| outputs=[ | |
| gr.Textbox(label="Errores, sugerencias y anotaciones"), | |
| gr.Code(label="Contenido de analisis.json", language="json") | |
| ], | |
| title="Analizador Semántico con NLP - Lenguaje de Robots", | |
| description="Detecta errores, genera sugerencias y transforma comentarios usando Hugging Face NLP." | |
| ).launch() | |