-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
34 lines (32 loc) · 1.53 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function main() {
let states = document.getElementById("states").value.split(",").map(item => item.trim())
let alphabets = document.getElementById("alphabets").value.split(",").map(item => item.trim())
let finalStates = document.getElementById("finalStates").value.split(",").map(item => item.trim())
let numberOfTransitions = document.getElementById("numberOfTransitions").value
let transitions = document.getElementById("transitions").value.split("\n")
let string = document.getElementById("string").value
let nfa = new NFA(states, alphabets, finalStates, transitions, numberOfTransitions)
nfa.createEquivalentDFA(false)
let dfa = new DFA(nfa.statesDFA, alphabets, nfa.finalStatesDFA, nfa.transitionsDFA, nfa.transitionsDFA.length)
if (document.getElementById("isAcceptedByDFA").checked) {
alert(dfa.isAcceptedByDFA(string))
}
else if (document.getElementById("makeSimpleDFA").checked) {
dfa.makeSimpleDFA();
}
else if (document.getElementById("showSchematicDFA").checked) {
dfa.showSchematicDFA(dfa.transitions, dfa.initialState, dfa.finalStates, "graphContainer")
}
else if (document.getElementById("isAcceptedByNFA").checked) {
alert(nfa.isAcceptByNFA(string))
}
else if (document.getElementById("createEquivalentDFA").checked) {
nfa.createEquivalentDFA(true)
}
else if (document.getElementById("findRegExp").checked) {
alert(nfa.findRegExp())
}
else if (document.getElementById("showSchematicNFA").checked) {
nfa.showSchematicNFA(transitions, states[0], finalStates, "graphContainer")
}
}