function STRS = dfsa_generate(M,depth) % generates all strings % that are accepted by M in <= depth steps STRS = {}; Q = M.q0; S = {''}; DS = deadstates_dfsa(M); PROGstart(depth,'generating...'); for d=1:depth Q1 = []; S1 = {}; for i=1:length(Q) q = Q(i); u = S{i}; if ismember(q,M.F) STRS{end+1} = u; end for s=M.ALF p = dfsa_delta(M,q,s); if ~ismember(p,DS) Q1(end+1)=p; S1{end+1}=[u s]; end end end Q=Q1; S=S1; PROGupdate(d); end PROGend; return