/// <summary>
 ///		Transforma una sentencia do...while
 /// </summary>
 /// <remarks>
 /// Python no tiene una sentencia do... while, por tanto, lo tenemos que hacer más o menos así
 /// while True:
 ///		print(i)
 ///		i = i + 1
 ///		if(i > 5):
 ///			break
 /// </remarks>
 private void TransformDo(SentenceDo sentence)
 {
     // Añade la sentencia while true
     AddSentence(string.Empty);
     AddSentence("while True:");
     // Añade las sentencias hija
     AddIndent();
     Transform(sentence.Sentences);
     // Añade el if con el break
     AddSentence("if not (" + TransformExpressions(sentence.Condition) + "):");
     AddIndent();
     AddSentence("break");
     // Quita las indentaciones, dos veces: una para el if y la otra para el while
     RemoveIndent();
     RemoveIndent();
 }
        /// <summary>
        ///		Ejecuta un bucle do ... while
        /// </summary>
        private async Task ExecuteDoAsync(SentenceDo sentence, CancellationToken cancellationToken)
        {
            if (sentence.Condition.Empty)
            {
                AddError("Cant find condition for do ... while loop");
            }
            else
            {
                bool end = false;

                // Ejecuta el bucle
                do
                {
                    VariableModel result;

                    // Ejecuta las sentencias del bucle
                    await ExecuteWithContextAsync(sentence.Sentences, cancellationToken);

                    // Ejecuta la condición
                    result = await ExecuteExpressionAsync(sentence.Condition, cancellationToken);

                    // Comprueba el resultado
                    if (result != null)
                    {
                        if (result.Type != VariableModel.VariableType.Boolean || !(result.Value is bool resultLogical))
                        {
                            AddError("Do while condition result is not a logical value");
                        }
                        else if (!resultLogical)
                        {
                            end = true;
                        }
                    }
                }while (!end && !Stopped);
            }
        }