Skip to content

A library and web app for simulating finite automatas (DFA, NFA, and ε-NFA) and regular expressions.

License

Notifications You must be signed in to change notification settings

89netraM/auto-automata

Repository files navigation

Auto Automata

A library and web app for simulating finite automatas (DFA, NFA, and ε-NFA) and regular expressions.

This project is a tool designed to help students solve understand quizzes and assignments from the course TMV028 /DIT322 at CTH. But can be used by anyone with an interest in automatas.

Contributions are welcome! If you found a bug please report an issue on GitHub or fix it yourself. New features are also welcome.

Features

Current features and some features that might be added in the future.

Finite Automata

  • DFA
  • NFA
  • ε-NFA
  • String tests
    • Web App
  • Subset Construction
    • Web App
  • Product Construction
    • Web App
  • Sum Construction
    • Web App
  • Convert to Regular Expression
    • Web App
  • Equality
    • Web App
  • Minimisation
    • Web App
  • Parsing file formats
    • ASCII table (TMV028/DIT322 specific format)
    • .jff from JFLAP
  • Formatting file formats
    • ASCII table (TMV028/DIT322 specific format)
    • LaTeX tables
    • .jff from JFLAP

Regular Expressions

  • String tests
    • Web App
  • Simplification (Can always be improved)
    • Web App
  • Convert to Automata
    • Web App

Context Free Grammars

  • Parsing strings
    • Constructing parse trees
      • Web App
    • Constructing CYK tables
      • Web App
  • Transformations
    • Bin
      • Web App
    • Del
      • Web App
    • Unit
      • Web App
    • Term
      • Web App
    • Chomsky Normal Form
      • Web App
  • Parsing file formats
  • Formatting file formats
    • LaTeX
    • UTF8
    • .jff from JFLAP

Library

This project can also be used as a npm library for JavaScript or TypeScript. It does not exist on the npm repository, but you can add it to your project from GitHub with the following command:

npm install 89netraM/auto-automata