Spaces:
Running
Running
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 | |