Este proyecto utiliza Vite, React, TypeScript y Peggy.js para la generación de parsers, así como Vitest para las pruebas unitarias.
- Node.js: Asegúrate de tener instalado Node.js.
- VSCode (recomendado): Para una experiencia de desarrollo óptima, se recomienda Visual Studio Code junto con sus extensiones para TypeScript, Vitest y debugging de Node.
├─ frontend/ # Código del front-end en React + Vite
├─ parser/ # Gramática PEG y parser generado
│ ├─ grammar.pegjs # Definición de la gramática
│ └─ parser.ts # Parser generado por Peggy (no editar manualmente)
├─ tests/ # Pruebas unitarias con Vitest
└─ package.json
En package.json
se han definido varios comandos para facilitar el flujo de trabajo:
- Instalación de Dependencias:
npm install
- Generar el parser: Antes de ejecutar las pruebas o el build, es importante generar el parser a partir de la gramática PEG.
npm run peggy
- Iniciar el Servidor de Desarrollo: Levanta el frontend con Vite en modo desarrollo
npm run dev
- Ejecutar las pruebas unitarias: Ejecuta las pruebas escritas con Vitest, generando el parser antes de correrlas, principalmente sirve para pruebar el parser
npm run test
- Build de Producción: Genera la version optimizada del frontend para producción
npm run build
- Vista Previa de la Build: Sirve la build para inspecci´)n local
npm run preview
- Abre el proyecto en VSCode.
- Extensiones recomendadas:
- "Debugger for Node.js" (integrado en VSCode por defecto)
- Extensiones para Typescript y Vitest
- Ve a la pestaña de
Run and Debug
y seleccionaDebug Parser
. Podrás colocar breakpoints en tus archivos .ts y depurar paso a paso
- Ejecuta las pruebas con inspección
npx vitest run --inspect-brk --no-file-parallelism
- Abre en Chrome
- Haz click en "Open dedicated DevTools for Node" y coloca breakpoints en la pestaña "Sources"
- Presiona continuar (Play) para ejecutar el código hasta tu breakpoint
- Ejecuta
npm run peggy
cuando modifiquesfortranpeg.pegjs
- Usa
npm run test
frecuentemente para validar el parser - Aprovecha las herramientas de debugging para inspeccionar el estado interno de las pruebas del parser