File size: 1,932 Bytes
ae21790
 
 
 
 
 
 
 
 
 
 
 
e821b5d
260ef1b
e821b5d
260ef1b
 
 
e821b5d
 
 
 
260ef1b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ae21790
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
---
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

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.

## Funcionalidades

- Lexer que reconoce más de 50 instrucciones del lenguaje del robot
- Parser recursivo que genera un árbol de sintaxis abstracta (AST)
- Análisis semántico:
  - Validación de uso de variables
  - Detección de tipos incompatibles en operaciones
  - Errores en condiciones de control (`IF`, `WHILE`)
- Exportación de resultados a `analisis.json`

## Formato de entrada

El archivo de entrada debe seguir la gramática del lenguaje de robot. Ejemplo:

```robot
x = 5;
y = z + 3.5;
IF y THEN {
    a = y - 1;
}
```

## ¿Cómo usar este Space?

1. Sube un archivo `.txt` con tu código en el lenguaje de robot.
2. El sistema mostrará los **errores semánticos detectados**.
3. Se generará y visualizará un archivo `analisis.json` con detalles.

## Estructura del Proyecto

- `lexer.py` – analiza y clasifica los tokens
- `parser.py` – genera el AST
- `semantico.py` – realiza el análisis semántico
- `main.py` – ejecución desde línea de comandos
- `app.py` – interfaz Gradio para este Space
- `requirements.txt` – dependencias mínimas

---

Desarrollado por [Ethgoin](https://huggingface.co/Ethgoin)
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference