Ethgoin commited on
Commit
464981e
·
verified ·
1 Parent(s): 206a289

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +60 -24
README.md CHANGED
@@ -23,46 +23,82 @@ INTEGRANTES
23
 
24
  # Analizador Semántico - Lenguaje de Robots
25
 
26
- Este proyecto realiza un análisis **léxico**, **sintáctico** y **semántico** para un lenguaje de programación diseñado para robots, originalmente programado en java; completamente migrado a **Python** y ejecutable en Hugging Face Spaces mediante una interfaz Gradio.
 
 
27
 
28
  ## Funcionalidades
29
 
30
- - Lexer que reconoce más de 50 instrucciones del lenguaje del robot
31
- - Parser recursivo que genera un árbol de sintaxis abstracta (AST)
32
- - Análisis semántico:
33
- - Validación de uso de variables
34
- - Detección de tipos incompatibles en operaciones
35
- - Errores en condiciones de control (`IF`, `WHILE`)
36
- - Exportación de resultados a `analisis.json`
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
  ## Formato de entrada
39
 
40
- El archivo de entrada debe seguir la gramática del lenguaje de robot. Ejemplo:
 
41
 
42
- ```robot
 
 
43
  x = 5;
44
- y = z + 3.5;
45
- IF y THEN {
46
- a = y - 1;
 
 
47
  }
48
  ```
49
 
 
 
 
 
 
 
 
 
 
 
 
50
  ## ¿Cómo usar este Space?
51
 
52
- 1. Sube un archivo `.txt` con tu código en el lenguaje de robot.
53
- 2. El sistema mostrará los **errores semánticos detectados**.
54
- 3. Se generará y visualizará un archivo `analisis.json` con detalles.
 
55
 
56
- ## Estructura del Proyecto
57
 
58
- - `lexer.py` – analiza y clasifica los tokens
59
- - `parser.py` – genera el AST
60
- - `semantico.py` realiza el análisis semántico
61
- - `main.py` ejecución desde línea de comandos
62
- - `app.py` – interfaz Gradio para este Space
63
- - `requirements.txt` – dependencias mínimas
64
 
65
- ---
66
 
67
  Desarrollado por [Ethgoin](https://huggingface.co/Ethgoin)
68
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
23
 
24
  # Analizador Semántico - Lenguaje de Robots
25
 
26
+ **Proyecto Final Programación de Sistemas de Base 2**
27
+
28
+ 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**.
29
 
30
  ## Funcionalidades
31
 
32
+ - **Lexer (`lexer.py`)**
33
+ Reconoce más de 50 instrucciones propias del lenguaje del robot: control de movimiento, sensores, comunicación, estados, etc.
34
+
35
+ - **Parser (`parser.py`)**
36
+ Analiza la estructura sintáctica del programa y construye un **árbol de sintaxis abstracta (AST)**.
37
+
38
+ - **Análisis Semántico (`semantico.py`)**
39
+ - Verifica el uso correcto de variables
40
+ - Evalúa compatibilidad de tipos (`int`, `float`, `boolean`)
41
+ - Valida condiciones en estructuras `IF` y `WHILE`
42
+ - Detecta errores como funciones mal usadas o variables no declaradas
43
+ - Genera anotaciones funcionales explicando el propósito de cada instrucción válida
44
+
45
+ - **Integración con NLP (`sugerencias_nlp.py`)**
46
+ - Procesa comentarios y errores semánticos
47
+ - Genera sugerencias simuladas o reales usando la API de Hugging Face
48
+ - Convierte anotaciones en descripciones legibles
49
+
50
+ - **Código intermedio (`codigo_intermedio.py`)**
51
+ Generación de pseudocódigo en formato de tres direcciones con instrucciones como `PARAM`, `CALL`, `STORE`.
52
+
53
+ - **Salida estructurada (`analisis.json`)**
54
+ Contiene:
55
+ - Variables declaradas
56
+ - Errores semánticos con sugerencias
57
+ - Anotaciones funcionales
58
+ - Comentarios interpretados
59
 
60
  ## Formato de entrada
61
 
62
+ El sistema analiza archivos `.txt` que contienen código en el lenguaje personalizado.
63
+ Ejemplo:
64
 
65
+ ```txt
66
+ int x;
67
+ float y;
68
  x = 5;
69
+ y = x + 3.5;
70
+
71
+ IF (y > 5) THEN {
72
+ MOVE_FORWARD(10);
73
+ PRINT("Listo");
74
  }
75
  ```
76
 
77
+ ## Estructura del Proyecto
78
+
79
+ - `lexer.py` – Análisis léxico
80
+ - `parser.py` – Generación del AST
81
+ - `semantico.py` – Validación y anotaciones semánticas
82
+ - `codigo_intermedio.py` – Generación de código de tres direcciones
83
+ - `sugerencias_nlp.py` – Procesamiento NLP de errores y comentarios
84
+ - `main.py` – Ejecución desde línea de comandos
85
+ - `app.py` – Interfaz web (Gradio) para Hugging Face Space
86
+ - `requirements.txt` – Dependencias mínimas
87
+
88
  ## ¿Cómo usar este Space?
89
 
90
+ 1. Sube un archivo `.txt` con tu código del lenguaje de robot
91
+ 2. El sistema analizará el código y detectará errores
92
+ 3. Se mostrarán los errores semánticos, sugerencias y anotaciones
93
+ 4. Podrás visualizar y descargar el contenido de `analisis.json`
94
 
95
+ > El proyecto también genera un archivo `codigo_intermedio.txt` con pseudocódigo basado en el análisis semántico.
96
 
97
+ ## Importante
98
+
99
+ - El sistema está preparado para conectarse con modelos como **CodeBERT** o **GPT-2**.
100
+ - Debido a restricciones del entorno gratuito de Hugging Face, las sugerencias no pueden ser generadas en tiempo real.
 
 
101
 
 
102
 
103
  Desarrollado por [Ethgoin](https://huggingface.co/Ethgoin)
104
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference