File size: 925 Bytes
d02548d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import json
from lexer import lexer
from parser import Parser
from semantico import AnalizadorSemantico

def analizar_codigo(archivo):
    try:
        contenido = archivo.read().decode("utf-8")
        tokens = lexer(contenido)
        parser = Parser(tokens)
        ast = parser.parse()
        analizador = AnalizadorSemantico(ast)
        resultado = analizador.analizar()
        errores = "\n".join(resultado["errores_semanticos"])
        json_resultado = json.dumps(resultado, indent=2)
        return errores, json_resultado
    except Exception as e:
        return f"Error: {e}", "{}"

gr.Interface(
    fn=analizar_codigo,
    inputs=gr.File(label="Sube un archivo de código"),
    outputs=[
        gr.Textbox(label="Errores detectados"),
        gr.Code(label="Contenido de analisis.json", language="json")
    ],
    title="Analizador Semántico en Python - Lenguaje de Robots"
).launch()