joeylemon / nfa-to-dfa Goto Github PK
View Code? Open in Web Editor NEWa visual NFA to DFA converter
Home Page: https://joeylemon.github.io/nfa-to-dfa/
a visual NFA to DFA converter
Home Page: https://joeylemon.github.io/nfa-to-dfa/
While tinkering with the program, I noticed that an NFA representing the regex string a*b*c*
is not transcribed correctly.
Specifically, the program does not recursively check what states can be reached by epsilon transitions; in this case, 1,2,3
should be reachable, but the program believes that 1,2
is correct:
This not only results in redundant states, but also means the resulting DFA can be incorrect. In this case, the DFA rejects the string ccccc
, even though it is valid according to the original regex rule.
It seems the error stems from the lack of recursion in the epsilon closure function.
I input my NFA but when it completes the DFA, the visual is off the screen and I cannot see the entire output. My NFA has 8 states.
Also one more thing. I can see at the index.js file that you have a querySelector about the import button. You are saving what the file has in a variable named “contents”. I can understand that the file has a specific type and format. Where do you define both of them?
I am trying to understand how we are going from the information of file (reading and analysing the information of the file) to the illustration of the NFA.
Thank you very much in advance!
Hello, i wnat ask this:
I can only see that is the fa.js file in the constructor you have written in the comments that transitions is an object, but where do you define the properties of this object and where do you define what the form of the transition look like (for example [starting stete][symbol]=>[final states])?
Τhank you very much in advance.
I like this tool however I cannot find a way to add the epsylon ε when adding a new transition. Can you help?
let user do input from table. i think it wil be really useful and fast to make the nfa by typing the state, transition, start, accept state, symbol from the table. First input the state name, then transition name, then select the start state from the list of state(using select or radio), then input the accept state from list of state. after that input the state transition direction in the table.
sorry if you confused with what i wrote here, i can't put words together well. you can ask for more detail. thank you
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.