Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

nexus

Nexus es un generador de lexer y LR parser en Zig que produce un solo módulo compilable sin runtime ni dependencias externas.

Ficha actualizada 23 sept 2026, 18:12 · upstream 23 sept 2026, 18:02 · release sin release detectada

00

Qué es nexus

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

Nexus lee un archivo .grammar y genera un único módulo Zig con lexer y LR parser combinados. No requiere runtime del parser, no necesita librerías adicionales ni código específico por lenguaje. El formato de entrada es una gramática declarativa en Zig que define tokens, reglas de parsing, precedencias y acciones post-tokenización.

Nexus se autohosting: parsea su propio formato de gramática con un parser generado a partir de nexus.grammars. El pipeline incluye tres comprobaciones CI: snapshots de AST golden, prueba de regeneración fija-punto y suite de negativos-shapes del lowerer para detectar drifts en el pipeline.

Se escribe dos archivos: {lang}.grammar (tokens, lexer states, reglas de parsing) y {lang}.zig (solo helpers no declarativos). Nexus emite un único módulo parser.zig con lexer, tabla LR, enum Tag, tipo Sexp y todas las acciones de reducción.

CASOS DE USO
  • Generar parsers para lenguajes de programación que usan una gramática declarativa sin runtime externo
  • Crear parsers de sintaxis personalizados en Zig con un solo archivo generado
  • Implementar formateadores de código como ASTs directamente desde la gramática
  • Desarrollar herramientas de análisis estático que no dependan de librerías de parsing externas
  • Generar parsers para lenguajes con sintaxis compleja (como MUMPS o Zig) sin escribir parser genérico
  • Crear parsers de expresiones matemáticas o lógicas declarativas en un solo paso
PUNTOS DESTACADOS
  • Nexus genera un único módulo Zig que contiene lexer y LR parser combinados, eliminando dependencias externas
  • Soporta LALR(1) por defecto y SLR(1) mediante el flag --slr, con ~3× más velocidad de generación en SLR
  • Emite tokens de 8 bytes sin asignaciones (zero-copy), ideal para rendimiento bajo carga
  • Proporciona output Sexp declarativo que puede ser compilado directamente por passadores del compilador
  • El parser generado es un frontend autocontenido que consume su propia gramática como fuente de verdad
  • Nexus se ejecuta en el mismo proceso que genera el parser, eliminando la necesidad de compilar y ejecutar dos módulos separados
PRECAUCIONES
  • No soporta lenguajes con sintaxis ambigua ni requiere un LR(1) explícito (solo LALR(1)), lo que puede ser problemático para gramáticas muy ambiguas
  • El parser generado es estático y no se actualiza automáticamente si la gramática cambia, requiriendo regeneración manual o re-compilación
  • No incluye un motor de compilación ni ejecución del parser, solo el parser en sí mismo que debe integrarse con otro lenguaje
  • La generación de tokens puede ser lenta para lenguajes con muchos tokens o reglas complejas, especialmente en SLR(1)
  • El formato .grammar es altamente específico y no es un estándar abierto, lo que limita la portabilidad entre proyectos
VISUAL

Capturas del proyecto

Imágenes reales detectadas en la documentación del repositorio.

Nexus Logo
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU1 vCPUrecomendación inicial
MEMORIA1 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADlownivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Despliegue manual

Para desplegar Nexus: compila `zig build -Doptimize=ReleaseSafe` para obtener binarios ejecutables. Para producción, considera usar un contenedor Docker con el binario de nexus como servicio. El parser generado se puede empaquetar en cualquier formato (tar.gz, zip) y distribuir junto con la aplicación. No requiere servidor ni base de datos; es completamente local y autocontenido.

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Next.jsNode.js
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
No detectados
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.