private void ProcessColourControlItem(ColourControlItem colourControlItem)
            {
                if (colourControlItem.PrefixAffinity && string.IsNullOrEmpty(colourControlItem.Text))
                {
                    _cachedPrefixInstructions.AddRange(colourControlItem.Instructions);

                    StoreCurrentIfPresent();
                    return;
                }

                if (!string.IsNullOrEmpty(colourControlItem.Text))
                {
                    StoreCurrentIfPresent();

                    var splitWords = SplitWords(colourControlItem.Text, _tabLength);
                    if (splitWords.Any())
                    {
                        splitWords.First().AddPrefixInstructions(_cachedPrefixInstructions);
                        _cachedPrefixInstructions.Clear();
                    }

                    if (splitWords.Length > 1)
                        Words.AddRange(splitWords.Take(splitWords.Length - 1));

                    _current = splitWords[splitWords.Length - 1];
                }
                else if (InstructionIsNewLineOnly(colourControlItem))
                {
                    StoreCurrentIfPresent();
                    _current = new SplitWord(0, 0, string.Empty);
                    _current.AddPrefixInstructions(_cachedPrefixInstructions);
                    _current.AddSuffixInstructions(colourControlItem.Instructions);
                    _cachedPrefixInstructions.Clear();
                }
                else
                    AddSuffixInstructionsToCurrent(colourControlItem.Instructions);
            }