let step memo maq = 
  let (aqui, 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 novo estado atingimos com este caracter a partir do estado actualmente activo (onde a execução actualmente se encontra, o estado aqui). Chamanos aqui a função next que trata deste cálculo. *)

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