コード例 #1
0
        /// <summary>
        /// Formats the specified display name.
        /// </summary>
        /// <param name="displayName">The display name to format.</param>
        /// <returns>The formatted display name.</returns>
        public string Format(string displayName)
        {
            var context = new FormatContext(displayName);

            while (context.HasMoreText)
            {
                rule.Evaluate(context, context.ReadNext());
            }

            context.Flush();

            return(context.FormattedDisplayName.ToString());
        }
コード例 #2
0
        /// <summary>
        /// Formats the specified display name.
        /// </summary>
        /// <param name="displayName">The display name to format.</param>
        /// <returns>The formatted display name.</returns>
        public string Format(string displayName)
        {
            var context = new FormatContext(displayName);

            while (context.HasMoreText)
            {
                rule.Evaluate(context, context.ReadNext());
            }

            context.Flush();

            return context.FormattedDisplayName.ToString();
        }
コード例 #3
0
            static void TryConsumeEscapeSequence(FormatContext context, char @char, int allowedLength)
            {
                var escapeSequence = new char[allowedLength];
                var consumed       = 0;

                while (consumed < allowedLength && context.HasMoreText)
                {
                    var nextChar = context.ReadNext();

                    escapeSequence[consumed++] = nextChar;

                    if (IsHex(nextChar))
                    {
                        continue;
                    }

                    context.Buffer.Append(@char);
                    context.Buffer.Append(escapeSequence, 0, consumed);
                    return;
                }

                context.Buffer.Append(char.ConvertFromUtf32(HexToInt32(escapeSequence)));
            }
コード例 #4
0
            private static void TryConsumeEscapeSequence(FormatContext context, char @char, int allowedLength)
            {
                var escapeSequence = new char[allowedLength];
                var consumed = 0;

                while (consumed < allowedLength && context.HasMoreText)
                {
                    var nextChar = context.ReadNext();

                    escapeSequence[consumed++] = nextChar;

                    if (IsHex(nextChar))
                    {
                        continue;
                    }

                    context.Buffer.Append(@char);
                    context.Buffer.Append(escapeSequence, 0, consumed);
                    return;
                }

                context.Buffer.Append(char.ConvertFromUtf32(HexToInt32(escapeSequence)));
            }