Este es un archivo README para el repositorio. A continuación se describe el propósito del proyecto, cómo instalarlo y cómo utilizarlo.
Este proyecto permite analizar expresiones regulares simples utilizando ANTLR4 y JavaScript, por medio de una gramática personalizada que reconoce expresiones como:
a|bab*c(a|b)+
- Node.js: Asegurate de tener Node.js instalado en tu sistema.
- ANTLR4: Debés tener ANTLR4 instalado y correctamente configurado.
- Visual Studio Code (opcional): Se recomienda para editar y ejecutar el código de forma cómoda.
Clona este repositorio: git clone https://github.com/piacts/51947
- Archivo de Entrada: Escribí una expresión regular válida o inválida dentro del archivo
input.txt. Por ejemplo: (a|b|c)*d+(ef|gh)?i{2,4} (válida) o [a-z-0-9] (inválida) - Ejecutar la Aplicación: Corré el programa utilizando Node.js con el siguiente comando: node index Para que se genere y visualice el árbol de derivación, es necesario iniciar el modo de depuración. Esto puede hacerse presionando F5 o manualmente desde Visual Studio Code, haciendo clic en el botón "Depurar".
- Ejemplo de salida: El programa mostrará:
- Una tabla con los tokens y lexemas generados por el lexer.
- Una verificación de si la expresión es válida según la gramática.
- Un árbol de derivación que representa la estructura sintáctica de la expresión.
En el caso de un input correcto:
Tabla de tokens y lexemas:
Árbol de derivación:
En el caso de un input incorrecto:
Tabla de tokens y lexemas:
Árbol de derivación:
- Archivos de Ejemplo:
Para probar el programa, se pueden utilizar los ejemplos que se encuentran en los archivos de texto:
input_correcto_1.txtinput_correcto_2.txtinput_incorrecto_1.txtinput_incorrecto_2.txt
Estos archivos contienen expresiones regulares válidas e inválidas respectivamente, y sirven para verificar el funcionamiento del analizador. Solo copiá el contenido de uno de ellos en input.txt antes de ejecutar el programa.
- Si el archivo
input.txtno existe o está vacío, el programa solicitará la expresión regular desde teclado. - La gramática acepta:
- Caracteres alfanuméricos y algunos símbolos (
_~@#$%&=<>!;:,./) - Operadores estándar de expresiones regulares:
*,+,?,{n},i{n,m},| - Agrupamientos con paréntesis:
( ) - Clases de caracteres:
[a-z],[0-9]
- No se permite el uso de secuencias de escape como
\d,\w, etc., en esta versión básica.