private static void AddAttributes(String css,
                                          ref Int32 i,
                                          StringBuilder sb,
                                          CssMarkupNode currentNode)
        {
            for (; i < css.Length; i++)
            {
                var currentChar = css[i];

                switch (currentChar)
                {
                case ':':
                    var key = sb.ToString();

                    sb.Clear();
                    i++;

                    var value = GetAttributeValue(css, ref i, sb);
                    if (value != null)
                    {
                        currentNode.AddAttribute(key, value);
                    }
                    break;

                case '}':
                    return;

                case ';':
                    throw new NotImplementedException();

                case '\r':
                case '\n':
                case '\t':
                case ' ':
                    break;

                default:
                    sb.Append(currentChar);
                    break;
                }
            }
        }