Crea un parser de expresiones matemáticas en JavaScript

Descubre cómo construir un parser de expresiones matemáticas en JavaScript con Earley: maneja precedencia, paréntesis, funciones y evaluación segura y extensible.

31 ago 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Crear un analizador de expresiones matemáticas en JavaScript es un ejercicio ideal para dominar gramáticas y evaluación segura. Sobre todo lo explorado en artículos previos, aquí damos un salto cualitativo usando el algoritmo Earley para analizar y evaluar expresiones con precisión, soportando precedencia, asociatividad, paréntesis y signos unarios. En Q2BSTUDIO, empresa de desarrollo de software, combinamos rigor académico con entrega industrial para construir aplicaciones a medida y software a medida robusto, listos para integrarse en tu plataforma web o backend.

Por qué Earley para un parser matemático en JavaScript

El algoritmo Earley es generalista y eficiente para gramáticas libres de contexto, maneja ambigüedades y se adapta bien cuando la gramática crece con nuevas funciones o operadores. A diferencia de enfoques recursivo descendentes, reduce el trabajo manual de backtracking y permite añadir reglas sin reescribir todo el analizador.

Gramática base de expresiones

Usaremos una gramática clásica con precedencia y asociatividad correcta

Expr -> Expr + Term | Expr - Term | Term

Term -> Term * Factor | Term / Factor | Factor

Factor -> Base ^ Factor | Base

Base -> numero | ( Expr ) | - Base

Esta forma captura el exponente como asociativo a la derecha, respeta el signo unario y permite anidar paréntesis sin límites. Añadir funciones como sin, cos o max resulta tan simple como extender Base a nombre ( listaArgs ).

Fase de tokenización

Antes de alimentar el algoritmo, dividimos la entrada en tokens numero, operador y paréntesis. Un tokenizador simple identifica secuencias de dígitos con punto decimal opcional, ignora espacios y produce símbolos para + - * / ^ ( ). Separar tokenización del parseo evita ambigüedades y simplifica errores.

Cómo trabaja Earley paso a paso

El algoritmo mantiene un chart, una lista de columnas, una por posición del input. Cada columna almacena estados con regla, punto de progreso y origen

Predicción añade estados cuando el punto espera un no terminal

Escaneo avanza si el token coincide con el terminal esperado

Completado propaga avances a los estados que esperaban el no terminal recién completado

Para evaluación, cada estado guarda también nodos del AST. Cuando completamos una regla, construimos un nodo con sus hijos. Así, al terminar con Expr desde la posición cero hasta el final, ya tenemos un árbol evaluable incluso si hubo varias derivaciones posibles. En gramáticas matemáticas bien definidas, la derivación es única.

Construcción y evaluación del AST

El AST usa nodos para operadores binarios y unarios, números y agrupaciones. La evaluación es una pasada postorden que aplica operaciones con control de errores y límites de precisión. Mejoras prácticas

Plegado de constantes para optimizar subárboles numéricos

Detección de división entre cero y rangos seguros

Soporte de variables a través de un entorno clave valor

Funciones con tabla de símbolos, por ejemplo sin, cos, pow y extensibles

Manejo de errores claro

Si no existe un estado completo Expr que cubra toda la entrada, reportamos el token y la posición esperada, sugiriendo por ejemplo falta de paréntesis o operador duplicado. Con el chart es sencillo proponer correcciones cercanas.

Extensiones útiles

Soporte de separadores de miles y locales

Funciones personalizadas con validación de aridad

Operadores personalizados como mod o operador ternario con gramática extendida

Integración en UI con resaltado de errores en tiempo real

Rendimiento y buenas prácticas

Earley rinde muy bien en gramáticas no ambiguas como esta. Aun así, limita retrocesos con memorización de nodos, reusa objetos y corta evaluación cuando detectes errores tempranos. Para cargas intensivas, encapsula el parser en un worker y añade caché por expresión normalizada.

Cómo integrarlo en tu arquitectura

En frontend, encapsula el analizador en un módulo con una API parse y evaluate. En backend Node, expón un microservicio que reciba expresiones, variables y devuelva el resultado con trazas del AST si se requiere auditoría. Donde haya necesidad de cálculos seguros, desde hojas de cálculo web hasta reglas de negocio, este enfoque elimina vulnerabilidades por eval y asegura precisión.

Q2BSTUDIO, tu partner tecnológico

En Q2BSTUDIO diseñamos e implantamos aplicaciones a medida y software a medida que incluyen componentes críticos como parsers, motores de reglas y validadores. Nuestro equipo también impulsa inteligencia artificial, ia para empresas y agentes IA, fortalece la ciberseguridad con auditorías y pentesting, y despliega plataformas escalables con servicios cloud aws y azure. Integramos analítica avanzada mediante servicios inteligencia de negocio y cuadros de mando con power bi para convertir datos en decisiones.

Si buscas un equipo que construya soluciones sólidas de extremo a extremo, desde el parser hasta la interfaz y el despliegue, visita nuestra página de aplicaciones a medida y descubre cómo aceleramos tu roadmap con calidad y velocidad.

Conclusión

Crear un parser de expresiones matemáticas en JavaScript con Earley te da una base extensible, segura y mantenible. Es perfecto para motores de cálculo, validación de reglas y escenarios donde la confiabilidad es clave. En Q2BSTUDIO podemos integrarlo en tu producto, optimizarlo para producción y conectarlo con analítica, seguridad y nube, todo dentro de una solución de software a medida lista para escalar.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat