Aplicación web para crear, analizar y trabajar con gramáticas formales Tipo 2 (Libres de Contexto) y Tipo 3 (Regulares).
- ✅ 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
Producciones de la forma:
A → aB(terminal seguido de no terminal)A → a(solo terminal)A → ε(cadena vacía)
Producciones más flexibles:
A → αBβ(cualquier combinación de terminales y no terminales)
- 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"
- Ingresa una cadena para verificar
- El sistema mostrará si es aceptada y su árbol de derivación
- Genera automáticamente cadenas válidas del lenguaje
- Útil para entender qué cadenas acepta la gramática
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
ε
Gramática que acepta a^n b (n ≥ 1):
- No terminales:
S - Terminales:
a,b - Símbolo inicial:
S - Producciones:
S → aSS → b
Cadenas aceptadas: ab, aab, aaab, etc.
- React + TypeScript
- Arquitectura Modelo-Vista-Presentador
- Sin dependencias externas de parsing
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 TypeScriptnpm install
npm run devMIT