let next simb maquina memo =
let (lesta, restante) = memo in
let (transicoes,b,c) = maquina in
(** tr = os estados atingíveis pela transição de label simb a
partir dos estado de lesta *) |
let tr = (fold_left
(fun x y -> (select y simb transicoes)@x )
[] lesta)
in
(** estende-se tr com os estados atingídos por transições epsilon *) |
let res = epsilon_trans (normalize tr) maquina in
if (res = []) then raise (FIM memo) else res