/// <summary>
 ///		Obtiene un token a partir de una palabra clave de longitud fija
 /// </summary>
 private void CheckRuleWordFixed(RuleWordFixed rule, TokenCollection tokens, ref bool found)
 {
     foreach (string word in rule.Words)
     {
         if (!found && CharSeparator.LookAtChar(word.Length).EqualsIgnoreCase(word))
         {
             // Añade el token
             tokens.Add(GetToken(rule, word, true));
             // Indica que se ha encontrado
             found = true;
         }
     }
 }
 /// <summary>
 ///		Obtiene la cadena de inicio que coincide con la regla
 /// </summary>
 private string GetStartRule(string[] starts)
 {
     // Busca la palabra de inicio que coincide con la regla
     if (starts?.Length > 0)
     {
         foreach (string start in starts)
         {
             if (CharSeparator.LookAtChar(start.Length).EqualsIgnoreCase(start))
             {
                 return(start);
             }
         }
     }
     // Si ha llegado hasta aquí es porque no se corresponde con la regla
     return("");
 }
 /// <summary>
 ///		Comprueba una regla de palabra reservada
 /// </summary>
 private void CheckRuleWord(RuleWord rule, TokenCollection tokens, ref bool found)
 {
     foreach (string word in rule.Words)
     {
         if (!found && CharSeparator.LookAtChar(word.Length).Equals(word, StringComparison.CurrentCultureIgnoreCase))
         {
             if (rule.ToFirstSpace && CharSeparator.CheckIsSpace(CharSeparator.LookAtChars(word.Length, 1)))
             {
                 // Añade el token
                 tokens.Add(GetToken(rule, word, true));
                 // Indica que se ha encontrado
                 found = true;
             }
         }
     }
 }