--- title: Analisis-Lenguaje Robot emoji: 🦀 colorFrom: yellow colorTo: red sdk: gradio sdk_version: 5.28.0 app_file: app.py pinned: false license: cc --- # Universidad Autónoma de Tamaulipas # Proyecto - Analizador en Hugginface INTEGRANTES - Gutiérrez Garcés Edwin - Ruiz Yañez Aaron Alfonso - Garcés Hernández Jesús Eduardo - Moreno Reyes Luis Daniel # Analizador Semántico - Lenguaje de Robots **Proyecto Final – Programación de Sistemas de Base 2** Este proyecto implementa un traductor semántico completo para un lenguaje personalizado de control de robots. Originalmente desarrollado en Java con JFlex y CUP, fue migrado completamente a **Python** para ser compatible con la plataforma **Hugging Face Spaces**, donde se ejecuta con una interfaz gráfica construida en **Gradio**. ## Funcionalidades - **Lexer (`lexer.py`)** Reconoce más de 50 instrucciones propias del lenguaje del robot: control de movimiento, sensores, comunicación, estados, etc. - **Parser (`parser.py`)** Analiza la estructura sintáctica del programa y construye un **árbol de sintaxis abstracta (AST)**. - **Análisis Semántico (`semantico.py`)** - Verifica el uso correcto de variables - Evalúa compatibilidad de tipos (`int`, `float`, `boolean`) - Valida condiciones en estructuras `IF` y `WHILE` - Detecta errores como funciones mal usadas o variables no declaradas - Genera anotaciones funcionales explicando el propósito de cada instrucción válida - **Integración con NLP (`sugerencias_nlp.py`)** - Procesa comentarios y errores semánticos - Genera sugerencias simuladas o reales usando la API de Hugging Face - Convierte anotaciones en descripciones legibles - **Código intermedio (`codigo_intermedio.py`)** Generación de pseudocódigo en formato de tres direcciones con instrucciones como `PARAM`, `CALL`, `STORE`. - **Salida estructurada (`analisis.json`)** Contiene: - Variables declaradas - Errores semánticos con sugerencias - Anotaciones funcionales - Comentarios interpretados ## Formato de entrada El sistema analiza archivos `.txt` que contienen código en el lenguaje personalizado. Ejemplo: ```txt int x; float y; x = 5; y = x + 3.5; IF (y > 5) THEN { MOVE_FORWARD(10); PRINT("Listo"); } ``` ## Estructura del Proyecto - `lexer.py` – Análisis léxico - `parser.py` – Generación del AST - `semantico.py` – Validación y anotaciones semánticas - `codigo_intermedio.py` – Generación de código de tres direcciones - `sugerencias_nlp.py` – Procesamiento NLP de errores y comentarios - `main.py` – Ejecución desde línea de comandos - `app.py` – Interfaz web (Gradio) para Hugging Face Space - `requirements.txt` – Dependencias mínimas ## ¿Cómo usar este Space? 1. Sube un archivo `.txt` con tu código del lenguaje de robot 2. El sistema analizará el código y detectará errores 3. Se mostrarán los errores semánticos, sugerencias y anotaciones 4. Podrás visualizar y descargar el contenido de `analisis.json` > El proyecto también genera un archivo `codigo_intermedio.txt` con pseudocódigo basado en el análisis semántico. ## Importante - El sistema está preparado para conectarse con modelos como **CodeBERT** o **GPT-2**. - Debido a restricciones del entorno gratuito de Hugging Face, las sugerencias no pueden ser generadas en tiempo real. Desarrollado por [Ethgoin](https://huggingface.co/Ethgoin) Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference