示例#1
0
        /// <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);
        }
示例#2
0
 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)));
 }