Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

a visual NFA to DFA converter

NotificationsYou must be signed in to change notification settings

joeylemon/nfa-to-dfa

Repository files navigation

Lint and Test

https://joeylemon.github.io/nfa-to-dfa/

Overview

Screenshot of the main application interface

This tool is used to convertnon-deterministic finite automata (NFA) todeterministic finite automata (DFA) through an interactive and visual interface. More specifically, you can:

  • Create an NFA interactively or from a saved JSON file
  • Export an NFA to a JSON file
  • View the description of both the NFA and the DFA, including a full delta transition table
  • Convert the NFA to an equivalent DFA in three possible ways:
    • Step-by-step: the DFA is constructed in controlled increments
    • All at once: completely convert the NFA to the DFA in one leap
    • Animated: watch the conversion process take place automatically

Technology

image

Originally created byAlex Klibisz andConnor Minton, COSC 312, Spring 2015, University of Tennessee, Knoxville.

Rewritten and enhanced byJoey Lemon andCamille Williford, COSC 493, Fall 2021, University of Tennessee, Knoxville.

Contributing

Prerequisites

You must haveNode.js v12.19.0+ and npm installed to run the application locally. Node versions below v12.19.0 are unable to run the unit tests.

Running Application

To set up the application locally, first clone this repository:

> git clone https://github.com/joeylemon/nfa-to-dfa.git

Then, install the dependencies:

>cd nfa-to-dfa> npm install

Then, simply run the start script to create a local webserver:

> npm start

Running this script should give an output similar to below:

> nfa-to-dfa@0.0.2 start~/Desktop/nfa-to-dfa> browser-sync start -s -f. --no-notify --host localhost --port 8000[Browsersync] Access URLs: --------------------------------------       Local: http://localhost:8000    External: http://192.168.1.127:8000 --------------------------------------          UI: http://localhost:3001 UI External: http://localhost:3001 --------------------------------------[Browsersync] Serving files from: ./[Browsersync] Watching files...

You can now navigate tohttp://localhost:8000 in the browser to view the application. The website will automatically reload upon changes to the code.

Linting

Prior to adding changes to the repository, you should run the linter on the code to ensure there are no syntax errors and to maintain a uniform coding style:

> npm run lint

To automatically lint files before committing them, you should add a pre-commit hook. Copy thepre-commit.sample file to.git/hooks/pre-commit:

> cp pre-commit.sample .git/hooks/pre-commit

Now, git will automatically lint all changed files before committing them to the repository.

Testing

You should also test your changes before committing them to the repository:

> npmtest

This will run all unit tests in thesrc/js/test directory and report any errors.

Releases

No releases published

Packages

No packages published

Contributors2

  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp