public string Processar(string input)
        {
            var coordenadas = new Coordenadas();

            // Valida se é null ou empty ou espaço vazio
            if (!string.IsNullOrWhiteSpace(input) || !string.IsNullOrEmpty(input))
            {
                //Realiza as validações necessárias.
                if (ValidaCoordenadas(input))
                {
                    return(coordenadas.CordenadasInvalidas);
                }
            }
            else
            {
                return(coordenadas.CordenadasInvalidas);
            }

            var cordenadasFinais = new RemoveOperacoesHelper(input);

            // cria novo objeto ja com o input recebido
            coordenadas.Input = cordenadasFinais.InputFinal.ToUpper();

            //pego todos os passos encontrados
            var regex  = new Regex(@"[SNLO]\d*");
            var passos = regex.Matches(coordenadas.Input);

            //passo um a um, e insiro a cordenada no objeto, deslocando o X e o Y conforme o passo
            foreach (var passo in passos)
            {
                var atributos = new Regex(@"[SNLO]|\d+").Matches(passo.ToString());
                var p         = atributos[0].ToString();
                var v         = atributos.Count > 1 ? int.Parse(atributos[1].ToString()) : 1;

                coordenadas.AlteraCoordenada(p, v);
            }

            return(coordenadas.ToString());
        }