/// <summary> /// Standard constructor /// </summary> public TokenKeyWords(IsIdentifierLetter identifier, bool isCaseSensitive, IEnumerable <string> keyWords) : base() { if (null == keyWords) { throw new ArgumentNullException("keyWords"); } m_IsIdentifierLetter = identifier ?? IsStandardIdentifier; m_IsCaseSensitive = isCaseSensitive; HashSet <string> hs = new HashSet <string>(isCaseSensitive ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase); foreach (var line in keyWords) { if (string.IsNullOrWhiteSpace(line)) { continue; } hs.Add(line); } m_Items.AddRange(hs); m_Items.Sort((left, right) => - left.Length.CompareTo(right.Length)); }
/// <summary> /// Standard constructor /// </summary> public TokenKeyWords(IsIdentifierLetter identifier, IEnumerable <string> keyWords) : this(identifier, true, keyWords) { }