Skip to content

Compilador visual en Python para Autómatas Finitos II. Incluye análisis léxico con tipado personalizado ("Zen", "Shin", "Kya") y un driver semántico. La interfaz permite editar, analizar y visualizar símbolos y errores.

Notifications You must be signed in to change notification settings

Gabriel-Tam/AF2-PythonCompiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Compilador - Python Edition

Descripción

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.

Autor

Gabriel Tamayo

Requisitos

  • Python 3.x
  • Tkinter (incluido en Python estándar)

Estructura del Proyecto

  • 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.

Cómo Ejecutar

  1. Corre python main.py para abrir la interfaz.
  2. Escribe código en el área "Código fuente".
  3. Presiona "Analizar" para ver símbolos y errores.

Limitaciones

  • 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.

Contribuciones

Si quieres contribuir, abre un issue o pull request. ¡Gracias!

Licencia

MIT License - Gabriel Tamayo, 2025.

About

Compilador visual en Python para Autómatas Finitos II. Incluye análisis léxico con tipado personalizado ("Zen", "Shin", "Kya") y un driver semántico. La interfaz permite editar, analizar y visualizar símbolos y errores.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages