let step memo maq = 
  let (laqui, restante) = memo in
  
  (** se o buffer de entrada for vazio, então acabou, senão tratamos do primeiro caracter do buffer. Ou seja, vamos ver que novos estados atingimos com ele a partir dos estados actualmente activos (onde a execução actualmente se encontra) que estão em laqui. Chamanos aqui a função next que trata deste cálculo. *)

  match restante with
      [] ->  raise (FIM memo)
    | el::li ->  (next el maq memo,li)