Máquina AFD
by Klawztro
JavaScript
var q0 = {},
qf = {};
q0.a = qf;
q0.b = q0;
qf.a = qf;
qf.b = qf;
qf.final = true;
function iterate(word,late_state) {
var letter = word.shift(),
atual_state = late_state[letter],
valid_word = false;
if (typeof atual_state === 'undefined') { //Machine lock.
console.log('machine locked');
return false;
}
if (word.length === 0 && atual_state.final === true) {
return true;
}
valid_word = iterate(word,atual_state);
return valid_word;
}
function strToArray(word) {
var letter,
size = word.length,
_array = [],
cont = 0;
for (; cont < size; cont++) {
_array.push(word.charAt(cont));
}
return _array;
}
var palavra = strToArray('bbbbbbb');
alert(iterate(palavra,q0));