Java Compiler Theory GUI & Plotting License
Intérprete por línea de comandos (REPL) y evaluador de expresiones algebraicas y trascendentes implementado en Java, con diseño basado en Teoría de Compiladores: análisis léxico (Tokenización), análisis sintáctico (Gramática libre de contexto y balanceo), evaluación dinámica de variables y graficación gráfica de funciones en 2D.
flowchart LR
Input["Entrada: Ecuación Matemática"] --> Lexer["Analizador Léxico (Tokenizador AToken)"]
Lexer --> Tokens["Stream de Tokens"]
Tokens --> Parser["Analizador Sintáctico (VerificarEcu)"]
Parser --> AST["Árbol de Expresión Válido"]
AST --> Evaluator["Evaluador de Variables (Evaluador.java)"]
Evaluator --> Plotter["Graficador 2D (GraphicFunction)"]
-
AToken.java(Analizador Léxico): Identifica y clasifica lexemas en tokens: operadores aritméticos (+,-,*,/,^), funciones trigonométricas/matemáticas (sin,cos,tan,log,sqrt), números flotantes y variables. -
VerificarEcu.java(Analizador Sintáctico): Valida la precedencia de operadores, balanceo estricto de paréntesis y coherencia gramatical de las ecuaciones ingresadas. -
Evaluador.java(Motor de Evaluación): Resuelve expresiones matemáticas asignando valores dinámicos a variables desconocidas. -
GraphicFunction.java(Renderizado Gráfico 2D): Módulo gráfico en Java Swing/AWT para graficar funciones$f(x)$ sobre un plano cartesiano interactivo con cálculo de rangos. -
ProyectoV01.java(CLI REPL): Shell interactivo (GP>) para cargar archivos de datos, inspeccionar ecuaciones y ejecutar comandos de evaluación.
src/
└── Logica/
├── ProyectoV01.java # Punto de entrada CLI (REPL loop)
├── AToken.java # Tokenizador y analizador léxico
├── VerificarEcu.java # Validador sintáctico y chequeo de reglas gramaticales
├── Evaluador.java # Motor de cálculo y evaluación de expresiones
├── GraphicFunction.java # Visualizador gráfico cartesiano en 2D
└── Datos.txt # Archivo de prueba con ejemplos de ecuaciones
git clone https://github.com/Angelblazel/mathparser-compilador-java.git
cd mathparser-compilador-javajavac -d bin src/Logica/*.javajava -cp bin Logica.ProyectoV01
leer <archivo>: Carga un archivo con listado de ecuaciones (ej:leer Datos.txt).listar: Muestra las ecuaciones cargadas en memoria.seleccionar <indice>: Selecciona una ecuación activa para operar.verificar: Ejecuta el análisis sintáctico y léxico sobre la ecuación seleccionada.evaluar <var=val>: Evalúa la función sustituyendo las variables por valores numéricos.graficar: Despliega la ventana con la curva gráfica de la función en 2D.exit: Finaliza la sesión del intérprete.
Proyecto desarrollado de forma colaborativa en equipo (3 integrantes) para la carrera de Ingeniería de Sistemas en la Universidad Nacional Mayor de San Marcos (UNMSM).