Giter VIP home page Giter VIP logo

sortedivan / dfamaker Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 7.38 MB

Dfa Maker is a desktop tool for creating and testing deterministic finite automaton machines. It is an interactive graphical tool that lets you edit, validate and save your DFA's in a JSON format. The graphical interface allows for fast edits and the moving of states and state arrows.

License: MIT License

C++ 98.12% CMake 1.88%

dfamaker's Introduction

dfaicon (1) (1)

DFEdit

DFEdit is a desktop tool for creating and testing deterministic finite automaton machines! It is an interactive graphical tool that lets you edit, validate and save your DFA's in a JSON format. The graphical interface allows for fast edits and the moving of states and state arrows. Additionally, it comes with an error checker, which indicates whether a DFA is deterministic, labeled correctly, etc.

Currently, the editing space is limited, but will be expanded in a later update. Dfa maker further comes with its own file system that uses JSON as a way of storing deterministic finite automatons.

The main UI of the DFA editor is a non-resizable screen (as of now), with a very simple structure that is intuitive to use.

image

DFEdit features an error window, which indicates whether the DFA is deterministic and if something fails within the application:

image

Another core feature of DFEdit is string validation. This can only be used after the current DFA has passed a sanity check and has been verified to be finite. To enter a string, the user may press on the right tab and write out the string as is, followed by enter to validate.

Correct string screen:

image

Incorrect string screen:

image

DFEdit also features a simple JSON file system. Currently, it can only save one DFA at a time (work in progress), but this will be changed in the near future to support multiple files and an elaborate file select system.

Known current issues:

  • Saving causes the problem to lag for a very long time/crash
  • Issues with selecting and de-selecting states

dfamaker's People

Contributors

sortedivan avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.