A modern, browser-based workbench for formal languages and automata theory, inspired by JFLAP. Built with Astro, Svelte and TypeScript. The user interface is in German.
Finite automata (NFA/DFA) with ε-transitions:
- Symbols can be single characters or whole words such as
hallo. Input words are split at spaces (hallo welt), or, without spaces, by the longest matching alphabet symbol (hallowelt) - Graph editor with automatic layout, undo/redo and autosave
- Step-by-step simulation and batch testing of many words
- Analysis (determinism, completeness, unreachable states), NFA → DFA, DFA minimization and FA → regular expression
- Formal definition
A = (Q, Σ, δ, q0, F), exportable as text, Markdown, LaTeX, SVG, PNG and PDF - JSON documents and JFLAP
.jffimport/export
Regular expressions: batch testing and conversion to an ε-NFA (Thompson construction).
Grammars: Chomsky classification, Chomsky normal form, CYK, FIRST/FOLLOW sets and LL(1) parsing with derivation
tree. Type -> for →; an empty alternative means ε.
Planned: regular grammar ↔ FA, SLR(1) and brute-force parsing, pushdown automata, Turing machines and L-systems.
| Key | Action |
|---|---|
V Z U L |
Select, state, transition and delete tool |
Del / Backspace |
Delete selection |
F2 |
Rename selected state |
F / A |
Fit view / arrange automatically |
Ctrl+Z / Ctrl+Y |
Undo / redo |
Ctrl+S / Ctrl+O |
Save / open |
In the select tool, Shift-drag creates a transition and Alt-drag disables grid snapping.
npm install
npm run dev # local dev server
npm test # unit tests
npm run build # type-check and build into dist/Large parts of this project were written with the help of AI (Claude Code). All changes are reviewed and tested before they are published.



