/AutomataEditor

an editor for automata using react-flow. Manuel modified for my TI course,

Primary LanguageTypeScript

Title

Goals/TODO

General

Automata Editor

The editor should be intuitive and easy to use.

  • Add a new node
  • named nodes
  • have a unique start node
  • multiple edges between nodes (or separated labels)
  • named labels
  • custom nodes
  • mark nodes as final (double border)
    • good looking double outline
  • select nodes, edges
  • move nodes
  • add edges
  • delete nodes, edges
  • save/load automata
  • extract simple datastructure
  • zoom
  • pan

Export Formats

  • Graphviz
  • LaTeX (Tikz)
  • JSON
  • Text (5-Tuple)
  • Url
  • Image
  • SVG
  • Table (for Turing)
  • RegEx
  • Grammar

Memory

  • Save to perma link
  • Save to local storage
  • Save to file
  • Save to server
  • Import from all

Simulation

  • Step through automata (highlight current node and position in word)
  • Word input
  • list of words (marked intended rejections) => bulk judge
  • NFA simulation
  • Turing simulation
  • PDA simulation

Special Features

  • Regex to automata
  • Automata to regex
  • Minize automata
  • NFA to DFA (power automaton)
  • Check equivalence (as import)
  • compute equivalence classes (myhill-nerode) (as export)
  • Regex labels

Bugs/Tests

  • Check for power automaton (epsilons)
  • Check for regex labels
  • Minimize ((01(0|1)*)|((0|1)*01)) automaton => wrong
  • refactor
  • modularize

Preview

Concept

Technical

To install the packages, you might need to use npm i --legacy-peer-deps.

The theory is abstracted in src/GraphUtils.tsx and src/interfaces.tsx.

Related Projects