Regata is two things:
-
A from-scratch JavaScript implementation of regular language expressions, deterministic finite automata (DFA), non-deterministic finite automata (NFA) and regular expression matching in terms of DFA evaluation.
-
A tool for the visualization of the minimal DFA for a given regular language expression and its evaluation of a given string with the use of cytoscape.js for modeling.
Its features include:
- Regular language expression string parsing
- Bidirectional NFA-DFA conversion
- Bidirectional Regex-NFA/DFA conversion
- DFA minimization by a modification of Hopcroft's algorithm
- Conversion of DFA/NFA to an easily processable algebraic representation based on adjacency matrices
- Algebraic simplification of regular language expressions
- Regular language expression randomization for a given depth
- DFA and NFA duplication
- DFA/NFA iteration
- Error handling