Exemplo n.º 1
0
        public bool IsValidName(ReadOnlyString newName, out ReadOnlyString validatedName)
        {
            validatedName = newName.Chars.Trim();

            if (validatedName.IsEmpty)
            {
                return(true);
            }

            var nameSpan = validatedName.Span;

            for (int i = 0; i < nameSpan.Length; i++)
            {
                char c = nameSpan[i];
                if (!(
                        ExpressionTokenizer.IsNameToken(c) ||
                        ExpressionTokenizer.IsSpaceToken(c) ||
                        (i > 0 && ExpressionTokenizer.IsDigitToken(c))))
                {
                    return(false);
                }
            }

            if (Expressions.ContainsKey(validatedName))
            {
                return(false);
            }

            return(true);
        }