open-index/open-npm huggingface dataset:
npm package: @juanrguezsu7/lexer-generator
Description: A package that can generate basic lexical analyzers
Author: Juan Rodríguez Suárez
Latest version: 1.1.9

# Lab: Lexer Generator
## Author
- Juan
- Rodríguez Suárez
- alu0101477596@ull.edu.es
## El paquete está publicado en GitHub Registry
- Enlace al paquete: [módulo](https://github.com/orgs/ULL-ESIT-PL-2324/packages/npm/package/lexer-generator-juan-rodriguez-suarez-alu0101477596)
## El módulo exporta los generadores léxicos y funcionan correctamente
```js
module.exports = { buildLexer, nearleyLexer };
```
- El funcionamiento se puede comprobar en los tests o ejecutando el archivo `sample.js` que se encuentra en la raíz del proyecto. 
## Se proporciona información de localización (offset, etc.)
```js
tokens.push({ type: token, value: newValue, line: line, col: match.index - actualColumn, length: match[0].length });
```
- Se ha añadido la información de localización en el atributo `line`, `col`, `length` de los tokens.
## El manejo de errores con el token ERROR es correcto
```js
regexps.push(/(?<ERROR>(.|\n)+)/);
```
- Se ha añadido un token `ERROR` para manejar los errores al final del resto de regexps para no interferir con los tokens correctos.
## Manejo de "tokens skip" correcto
```js
if (validTokens.get(token).skip) continue;
```
- Dentro del bucle de la función `buildLexer` se comprueba si el token es de tipo `skip` para no añadirlo al array de tokens.
## Contiene tests comprobando el atributo de transformación value
- Existen tests en el archivo `test/build-lexer.test.js` que comprueban tanto el correcto funcionamiento del lexer general y la compatibilidad con Nearley.JS.
## Contiene tests comprobando la compatibilidad del lexer generado con Nearley.JS (egg-parser)
- Dentro de la carpeta `test` se encuentran los tests que comprueban la compatibilidad del lexer generado con Nearley.JS.
## Opcional: estudio de covering
- En `docs/cov` se encuentra el estudio de covering del módulo.
## Se ha hecho CI con GitHub Actions
- Se han añadido 3 GH Actions para comprobar el correcto funcionamiento del módulo; una para desplegar la documentación en GH Pages, otra para publicar el módulo en el GitHub Registry y otra para comprobar el correcto funcionamiento del módulo.
## Los informes están bien presentados (Vuepress)
- Documentación generada con Vuepress en la carpeta `docs/doc`.
## La documentación es completa
- Se han documentado todas las funciones y se han añadido ejemplos de uso.
## Opcional: publicar la documentación de la API usando GitHub Pages en la carpeta docs/
- Se encuentra en el About de este repositorio: [docs](https://ull-esit-pl-2324.github.io/lexer-generator-juan-rodriguez-suarez-alu0101477596/)
## Se ha hecho un buen uso del versionado semántico en la evolución del módulo
- Se han añadido tags en el repositorio para marcar las versiones del módulo importantes además de seguir el versionado semántico.
## Calidad del código
- Se ha usado ESLint para comprobar la calidad del código usando la configuración de `.eslintrc.json` que se encuentra en la raíz del proyecto.