/// <summary> /// Determines whether [is match implementation] [the specified tokenizer]. /// </summary> protected override Token IsMatchImpl(Tokenizer tokenizer) { foreach (var character in Match) { if (tokenizer.Current == character.ToString(CultureInfo.InvariantCulture)) { tokenizer.Consume(); } else { return(null); } } bool found; if (!AllowAsSubString) { var next = tokenizer.Current; found = string.IsNullOrWhiteSpace(next) || SpecialCharacters.Any(character => character.Match == next); } else { found = true; } if (found) { return(new Token(TokenType, Match)); } return(null); }
public bool ValidateSpecialCharacters(string nbPart) { return(SpecialCharacters.Count == 0 ? true : SpecialCharacters. Any(e => e.CharacterPositionValid(nbPart)) ? true : SpecialCharacters. Any(e => e.CharacterPositionValid(nbPart, nbPart.Length))); }