Skip to content

fredylopez01/grammar-parser

Repository files navigation

Analizador Sintáctico

Aplicación web para crear, analizar y trabajar con gramáticas formales Tipo 2 (Libres de Contexto) y Tipo 3 (Regulares).

Características

  • Definir gramáticas - Crea gramáticas especificando terminales, no terminales, producciones y símbolo inicial
  • Validación en tiempo real - Verifica la sintaxis mientras defines la gramática
  • Evaluación de cadenas - Comprueba si una cadena pertenece al lenguaje y genera árbol de derivación
  • Generación automática - Genera cadenas válidas del lenguaje
  • Importar/Exportar - Guarda y carga gramáticas en formato JSON
  • Ejemplos incluidos - Varios ejemplos de gramáticas para empezar

Tipos de Gramática

Tipo 3 - Regular

Producciones de la forma:

  • A → aB (terminal seguido de no terminal)
  • A → a (solo terminal)
  • A → ε (cadena vacía)

Tipo 2 - Libre de Contexto

Producciones más flexibles:

  • A → αBβ (cualquier combinación de terminales y no terminales)

Uso

1. Definir Gramática

  • Ingresa los no terminales separados por comas: S,A,B
  • Ingresa los terminales separados por comas: a,b,c
  • Define el símbolo inicial: S
  • Agrega producciones sin espacios: aS, bA, etc.
  • Click en "Crear Gramática"

2. Evaluar Cadenas

  • Ingresa una cadena para verificar
  • El sistema mostrará si es aceptada y su árbol de derivación

3. Generar Cadenas

  • Genera automáticamente cadenas válidas del lenguaje
  • Útil para entender qué cadenas acepta la gramática

Formato de Producciones

Sin espacios entre símbolos:

  • ✅ Correcto: aS, aAb, a
  • ❌ Incorrecto: a S, a A b

Cadena vacía:

  • Dejar el campo derecho vacío o escribir ε

Ejemplo Rápido

Gramática que acepta a^n b (n ≥ 1):

  • No terminales: S
  • Terminales: a,b
  • Símbolo inicial: S
  • Producciones:
    • S → aS
    • S → b

Cadenas aceptadas: ab, aab, aaab, etc.

Tecnologías

  • React + TypeScript
  • Arquitectura Modelo-Vista-Presentador
  • Sin dependencias externas de parsing

Estructura del Proyecto

src/
├── model/
│   └── GramarModel.ts       # Lógica de validación y parsing
├── presenter/
│   └── Analizer.tsx          # Componente principal
├── components/
│   ├── DefinitionView.tsx    # Definir gramáticas
│   ├── ParseView.tsx         # Evaluar cadenas
│   ├── GenerateView.tsx      # Generar cadenas
│   ├── CurrentGrammarView.tsx # Ver gramática actual
│   └── ExamplesView.tsx      # Ejemplos
└── interfaces/             # Tipos TypeScript

Instalación

npm install
npm run dev

Licencia

MIT

About

Aplicación web para crear, analizar y trabajar con gramáticas formales Tipo 2 (Libres de Contexto) y Tipo 3 (Regulares).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors