CommandCreation.MaskParser.GetTagsAndSplits C# (CSharp) Method

GetTagsAndSplits() private method

private GetTagsAndSplits ( ) : void
return void
        private void GetTagsAndSplits()
        {
            bool writeTag = false;

            var tag = new StringBuilder();
            var split = new StringBuilder();

            foreach (char c in _mask)
            {
                if (c != '{' && !writeTag)
                {
                    split.Append(c);
                }

                if (c != '{' && c != '}' && writeTag)
                {
                    tag.Append(c);
                }

                if (c == '{' && writeTag)
                {
                    split.Append(tag);
                    tag.Clear();
                    tag.Append(c);
                }

                if (c == '{' && !writeTag)
                {
                    tag.Append(c);
                    writeTag = true;
                }

                if (c == '}' && writeTag)
                {
                    tag.Append(c);
                    writeTag = false;
                    _tags.Add(tag.ToString());
                    tag.Clear();
                    _splits.Add(split.ToString());
                    split.Clear();
                }
            }
            _splits.Add(split.ToString() + tag.ToString());
        }