PoC que demuestra cómo Miyuki podría cargar y ejecutar dinámicamente parsers, analizadores, e intérpretes definidos como paquetes NPM.
- Lectura de la Guía: El sistema lee un archivo JSON (ej.
guia1.json) que define el ejercicio y especifica qué plugin (paquete NPM + clase) se debe usar para parsear el código. - PluginManager:
- Verifica si existe una carpeta oculta
.miyukien el directorio actual. - Si el plugin solicitado no está instalado, ejecuta
npm installdentro de.miyuki. - Carga dinámicamente el módulo y la clase especificada.
- Verifica si existe una carpeta oculta
- Ejecución:
- El código del estudiante (ej.
solucion1.hs) es parseado usando el plugin cargado. - Se ejecuta el análisis estático usando
yukigoy las expectativas definidas en la guía.
- El código del estudiante (ej.
Actualmente el package.json referencia dependencias locales (file:../yukigo/...) ya que en NPM no están las últimas versiones de los paquetes
npm run miyuki guia1.json solucion1.hs