Este proyecto es un compilador simple implementado en Python, con una interfaz gráfica usando Tkinter. Incluye un analizador léxico (lexer) que tokeniza el código fuente en símbolos como variables, tipos ("Zen" para enteros, "Shin" para flotantes, "Kya" para cadenas), operadores y palabras clave como "do" y "while". También tiene un análisis semántico completo que verifica duplicados en declaraciones, compatibilidad en operaciones aritméticas y asignaciones. La UI permite editar código, analizarlo y ver tablas de símbolos y errores.
El lenguaje soporta declaraciones básicas como "Zen $var." y expresiones simples. Es un compilador educativo, no completo para producción.
Gabriel Tamayo
- Python 3.x
- Tkinter (incluido en Python estándar)
- main.py: Punto de entrada que lanza la interfaz.
- model/error.py: Define la clase para errores de compilación.
- model/symbol.py: Define la clase para símbolos en la tabla.
- gui/components.py: Crea componentes UI como editor de código y tablas.
- gui/interface.py: Inicia y centra la ventana principal.
- gui/events.py: Configura eventos y el análisis al presionar "Analizar".
- gui/layout.py: Construye el layout de la UI.
- core/semantic_driver.py: Dirige el análisis semántico.
- core/lexer.py: Implementa el analizador léxico con regex.
- core/semantic/duplicity.py: Verifica duplicados en declaraciones de variables.
- core/semantic/assignments.py: Valida asignaciones simples y compatibilidad de tipos.
- core/semantic/operations.py: Valida operaciones aritméticas en asignaciones.
- Corre
python main.py
para abrir la interfaz. - Escribe código en el área "Código fuente".
- Presiona "Analizar" para ver símbolos y errores.
- No reporta errores léxicos en el lexer (solo símbolos válidos).
- Soporte limitado para estructuras de control (solo "do" y "while" como tokens).
- Análisis semántico enfocado en tipos básicos y operaciones simples.
Si quieres contribuir, abre un issue o pull request. ¡Gracias!
MIT License - Gabriel Tamayo, 2025.